The Forgejo instance the modules and the chain-module-sdk dep
live on is reachable at git.flemming.ai (api/v1/version returns
SERVING); git.flemming.ws is a legacy host that no longer
resolves at the API level. Cargo.toml's git dep already uses
.ai — the CI workflow's checkout URL and the SDK insteadOf
rewrite now match, so cargo's git fetch can authenticate via
${{ secrets.MODULE_SDK_PAT }} the same way it was always meant
to. No behaviour change to the module code.
Signed-off-by: flemming-it <sf@flemming.it>
The six gates the rest of chain-modules already runs against:
fmt-check, clippy with -D warnings, host build, host test,
release wasm32-wasip2 build, plus the manual external-URL
checkout and chain-module-sdk insteadOf URL rewrite (via
secrets.MODULE_SDK_PAT) so cargo can reach the org-private SDK
git dep through Forgejo's REQUIRE_SIGNIN_VIEW.
Same template as text-extract's .forgejo/workflows/ci.yml; the
only swap is the module-name string in the checkout step.
Signed-off-by: flemming-it <sf@flemming.it>
Prep for the Forgejo CI gate. Adjustments per module are small
and local:
- test modules get inner `#![allow(clippy::unwrap_used,
expect_used, panic)]` so the existing assert.expect()
test idiom keeps working without rewriting every fixture
- the dead_code field that downstream consumers may still
want serialised gets an explicit #[allow(dead_code)]
- manual char/range comparisons fold to the idiomatic forms
(`['…']`, `(2..=5).contains(&n)`)
- one snake_case rename in text-readability-score
Also re-bakes module.wasm so the committed artefact matches
the post-fmt source byte-for-byte.
No behaviour change, no test change. cargo fmt --all -- --check
and cargo clippy --all-targets -- -D warnings now both pass.
Signed-off-by: flemming-it <sf@flemming.it>
Adds the three release-prep artefacts so the repo is ready for
the chain store: Apache-2.0 LICENSE (boilerplate), NOTICE with
per-module copyright + third-party + methodological lineage
attribution, and the compiled wasm32-wasip2 release bundle
(module.wasm) that the Hub will install verbatim once published.
Cargo.lock is now also tracked so reproducible builds line up
with the WASM hash that ships.
Signed-off-by: flemming-it <sf@flemming.it>
Seven-dimensional benefit score aggregator (Studie §3.2):
schutz · markt · rechtssicherheit · eu_binnenmarkt
sicherheit · umwelt · einnahmen
Each dimension is 0..5. Output carries the mean total (also 0..5)
plus the dispersion (standard deviation across the seven
dimensions), so the UI can flag "high mean but split panel" cases
where a juristisch-politisch konventionierte Dimension dominates
and others disagree. Per-dimension sources can be passed via the
optional _sources sub-object so the audit log preserves the
"hier kommt jede 5 her"-Beleg.
This is the one genuinely domain-bound module: the seven
dimensions are juristisch-politisch konventioniert and won't
generalise to other domains. Lives in the chain-modules-law org
once the org is created on Forgejo; until then the remote URL
is set accordingly.
v0.1.0 input shape is a flat ratings object so the surrounding
flow can pre-compute the scores from any source (LLM proposal +
Juristen-review, NKR-Stellungnahme, Beirats-Konsens).
Pure in-WASM, zero filesystem, zero network.
Reserved for next versions:
- 0.2: per-dimension Juristen-vote panel (inter-rater κ output)
- 0.3: LLM-proposed ratings + RAG-Quellen integration via
the surrounding flow (this module stays deterministic)
Signed-off-by: flemming-it <sf@flemming.it>