chore(rescript): remove the 4 orphan .res files + the affine-res package#293
Merged
Conversation
Removes the ReScript baseline rot that's been failing the
governance / Language / package anti-pattern policy check on every PR:
- packages/affine-res/{README.adoc,rescript.json,src/AffineScript.res,
AffineScript.resi,AffineScriptValue.res} — orphan ReScript bindings
package. The whole directory goes because the .res sources are the
only thing it contains; the README + rescript.json + .resi cannot
function without them. Same precedent as packages/affine-ts/
(removed 2026-05-11, issue #66 closed won't-do): non-AffineScript
consumer-binding packages aren't first-class in the AffineScript
repo — TS callers were told to use @hyperpolymath/affine-js
directly, ReScript callers should do likewise.
- affinescriptiser/examples/SafeDOMExample.res and
examples/SafeDOMExample.res — duplicate ReScript example. No
ReScript-equivalent in the AffineScript stdlib examples bench was
rebuilt; the equivalent live .affine examples (e.g.
examples/effects.affine, ownership.affine) cover the same ground.
No other tracked code references `affine-res`, `AffineRes`, or these
example paths (verified via repo-wide grep across .yml/.adoc/.json/
.toml/.affine/.ml/.mli/.rs/.sh/Justfile). The historical roadmap
status doc docs/reports/AFFINESCRIPT-ROADMAP-STATUS-2026-04-13.md
mentions affine-res as a 2026-04-13 snapshot checkbox; left intact as
history.
Effect: `find . -name '*.res' | grep -v node_modules` returns empty,
which is exactly what the governance script asserts. No regressions
in the build (these files were never linked into dune / Cargo / the
CLI).
Refs the cross-PR triage on #291, #292 where the same failing check
was diagnosed as baseline rot.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🔍 Hypatia Security ScanFindings: 40 issues detected
View findings[
{
"reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
"type": "banned",
"file": "AI.a2ml",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Superseded by 0-AI-MANIFEST.a2ml",
"type": "banned",
"file": "AI.djot",
"action": "delete",
"rule_module": "root_hygiene",
"severity": "high"
},
{
"reason": "Issue in quality.yml",
"type": "missing_workflow",
"file": "quality.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Issue in security-policy.yml",
"type": "missing_workflow",
"file": "security-policy.yml",
"action": "create",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
"type": "unpinned_action",
"file": "governance.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "high"
},
{
"reason": "Action actions/checkout@v4 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Action denoland/setup-deno@v2 needs attention",
"type": "unpinned_action",
"file": "publish-jsr.yml",
"action": "pin_sha",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/example/smoke_driver.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/cli.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
},
{
"reason": "TypeScript file detected -- banned language",
"type": "banned_language_file",
"file": "/home/runner/work/affinescript/affinescript/affinescript-deno-test/mod.ts",
"action": "flag",
"rule_module": "cicd_rules",
"severity": "critical"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
1 task
hyperpolymath
added a commit
that referenced
this pull request
May 20, 2026
…JSR publish (#303) INT-04 and INT-10 were both marked DONE in TECH-DEBT, but the wording predated the actual JSR publish: - INT-04 line said "JSR publish authorised + dispatched (owner go 2026-05-19)" — speculative; the real first-time publish landed 2026-05-20 (six dispatched runs through the scope/package/trusted- publisher/SPDX-licence/.d.ts/cross-runtime gates). - INT-10 said DONE but didn't note the LSP's shim-resolution path only became *executable* after today's publish (code was correct but inert against a 404 JSR URL). Updates - docs/TECH-DEBT.adoc — INT-04 + INT-10 lines reflect the live publish, with explicit note that @hyperpolymath/affine-js + affinescript-tea remain dry-run-OK / not-yet-dispatched. - docs/PACKAGING.adoc — JSR-publishable table now has 3 rows with a Status column; @hyperpolymath/affinescript row records the LIVE 0.1.2 (2026-05-20) state, cross-runtime carve-out, MPL-2.0 licence pointer. New "First-time JSR publish gotchas" subsection captures the five gates that fail one at a time (scope claim, package create, trusted GH repo link, SPDX licence, sibling .d.ts + triple-slash reference) — dry-run misses gates 2 + 3 so they cost a round-trip. - .machine_readable/6a2/STATE.a2ml — new session-note-2026-05-20 following the existing `session-note-YYYY-MM-DD = "…"` convention, capturing every landed PR (#291/#292/#293/#294/#295/#298/#299) and the estate macos-13 sweep (casket-ssg#8, proven#29, repos-monorepo#9), plus the open follow-up tickets (#297/#300, #301, #302). This file is the STATE.a2ml mirror, not the lead; TECH-DEBT.adoc is the spine. No code change. TECH-DEBT update protocol calls for ledger + STATE mirror in lockstep; PACKAGING is the human-facing companion. Memory entries (`reference_macos_13_runner_retired`, `reference_estate_gitbot_auto_closes_on_refs`, `reference_estate_mirror_state_2026_05_20`, `reference_jsr_publish_recipe`) live in `~/.claude/projects/.../memory/` and are out of repo scope. Refs #282 (closed), #301, #302, #297, #300. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.resfiles that have been failing thegovernance / Language / package anti-pattern policycheck on every PR for some time, plus the orphan wrapper package they live in:packages/affine-res/{README.adoc, rescript.json, src/AffineScript.res, AffineScript.resi, AffineScriptValue.res}— the wholeaffine-resReScript-bindings package goes because the.ressources are the only thing in it; the README/rescript.json/.resican't function without them. Same precedent aspackages/affine-ts/(removed 2026-05-11, won't-do per [Repo] Auto-generate packages/affine-{js,ts}/types.d.ts from compiler output #66) — non-AffineScript consumer-binding packages aren't first-class here.affinescriptiser/examples/SafeDOMExample.res+examples/SafeDOMExample.res— duplicate ReScript example. Live.affineexamples (examples/effects.affine,ownership.affine, etc.) cover the same ground.affine-res/AffineRes/ the example paths (verified via repo-wide grep across.yml/.adoc/.json/.toml/.affine/.ml/.mli/.rs/.sh/Justfile). The historical roadmap status docdocs/reports/AFFINESCRIPT-ROADMAP-STATUS-2026-04-13.mdis left intact as a 2026-04-13 snapshot.Effect
find . -name '*.res' | grep -v node_modulesnow returns empty — exactly what the governance script asserts. The check should flip from FAILURE to ✅ on this PR and stop polluting every subsequent PR's CI.Test plan
.res/.resileft:git ls-files '*.res' '*.resi'→ emptygrep -rn "affine-res\|AffineRes\b" --include=...→ emptygovernance / Language / package anti-pattern policyshould pass on this PRCloses the recurring baseline-rot failure called out on PRs #291 and #292.
🤖 Generated with Claude Code