repo-sync-enforcer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited repo-sync-enforcer (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.
When editing schemas, OpenAPI specs, MCP data, or tracking docs across the RiskModels repos, follow this workflow to prevent drift.
| Asset | Canonical Repo | Path |
|---|---|---|
| JSON schemas | RiskModels_API | mcp/data/schemas/*.json |
| schema-paths.json | RiskModels_API (edit first) | mcp/data/schema-paths.json |
| capabilities.json | RiskModels_API | mcp/data/capabilities.json |
| openapi.json (generated) | RiskModels_API | mcp/data/openapi.json |
| OPENAPI_SPEC.yaml | RiskModels_API | OPENAPI_SPEC.yaml |
| CHANGELOG | RiskModels_API | CHANGELOG.md |
| MASTER_BACKLOG.md (engineering OSOT) | BWMACRO | docs/ceo/MASTER_BACKLOG.md |
| current_state.md (API narrative) | BWMACRO | docs/api_roadmap/current_state.md |
Path note: canonical is RiskModels_API/mcp/ (singular). The portal mirror lives at Risk_Models/riskmodels_com/mcp-server/ (different subdir name). Don't confuse them — copying into the wrong path creates phantom drift that passes diff -q only if both sides have the same subdir name.
RiskModels_API/mcp/data/schemas/ "/schemas/NEW_SCHEMA-v1.json"main and rely on Sync MCP data to Risk_Models in that repo — requires REPO_ACCESS_TOKEN with write to Risk_Models; see docs/AGENTS_CROSS_REPO.md): cp RiskModels_API/mcp/data/schemas/NEW_SCHEMA-v1.json \
Risk_Models/riskmodels_com/mcp-server/data/schemas/When the portal is behind on multiple artifacts at once, do a full one-directional sync rather than cherry-picking. Copy all four from API canonical → portal mirror, then verify with cmp:
API=/path/to/RiskModels_API/mcp/data
PORTAL=/path/to/Risk_Models/riskmodels_com/mcp-server/data
cp -r "$API/schemas/." "$PORTAL/schemas/"
cp "$API/schema-paths.json" "$PORTAL/schema-paths.json"
cp "$API/capabilities.json" "$PORTAL/capabilities.json"
cp "$API/openapi.json" "$PORTAL/openapi.json"
diff -q "$API/schemas/" "$PORTAL/schemas/" # expect no output
cmp "$API/schema-paths.json" "$PORTAL/schema-paths.json" && echo MATCH
cmp "$API/capabilities.json" "$PORTAL/capabilities.json" && echo MATCH
cmp "$API/openapi.json" "$PORTAL/openapi.json" && echo MATCHPortal is never canonical — if the portal file is newer than the API's, that's a process violation; push the change to the API side first, then resync down.
RiskModels_API/OPENAPI_SPEC.yamlworkflow_dispatch also available.current_state.md Response Format / Data Endpoints table in BWMACROWhen making cross-repo changes, output this checklist and mark items as you complete them:
Sync checklist:
- [ ] RiskModels_API: schema/spec/changelog updated
- [ ] Risk_Models: schema copied, schema-paths.json updated (if schema added)
- [ ] BWMACRO: MASTER_BACKLOG.md + current_state.md updated (if scope/format/gap changed)
- [ ] Manual copy steps executed (schemas, schema-paths.json)At the end of your response, offer: "I can draft a sync checklist for the other repos, or a small bash script to automate the copies."
All three repos (BWMACRO, RiskModels_API, Risk_Models) push migrations into the same Supabase project ("BW Web Data Engine"). There is no dev/prod split. The project's supabase_migrations.schema_migrations registry is shared state.
Symptom: supabase db push from one repo fails with:
Remote migration versions not found in local migrations directory.
...try repairing the migration history table:
supabase migration repair --status reverted <versions…>This means another repo has applied migrations that the current repo doesn't have locally. The CLI's suggested command is wrong — --status reverted tells Supabase "those migrations didn't happen," which would cause them to re-run and potentially conflict.
Correct recovery options, from safest to most surgical:
CREATE … IF NOT EXISTS, ADD COLUMN … IF NOT EXISTS) directly. Skips the migration registry entirely — acceptable because the other repos are also bypassing it. Lowest blast radius. supabase migration repair --status applied <remote-only-versions…>
supabase db pushThis is accurate — those migrations WERE applied. After this, the current repo can db push its local-only migrations. Do this when you have multiple local-only migrations to push and want the registry clean.
supabase db pullGenerates a single catch-up migration that encodes the drift. Messier; risks encoding unintended changes from other repos. Only use when you're actually adopting the canonical state as-is.
Prevention: treat all schema changes as production-ish. Either author migrations in a designated repo (BWMACRO recommended since it already pushes other artifacts) and sync down, or coordinate by paste-into-SQL-editor so no repo's migration folder is ever considered authoritative.
Prefix prompts with @repo-sync-enforcer when working on schemas, OpenAPI, or docs to invoke this skill. The Cursor rule .cursor/rules/repo-sync-enforcer.mdc also applies when editing matching files.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.