Commit graph

7 commits

Author SHA1 Message Date
4587fa9b0c fix(naming): dash capability ID (chain catalog charset [a-z0-9-])
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m40s
provides.capability _ -> - so it passes `chain validate` and the hub
store name-match. No behaviour change (capability validation is lint-only;
the WASM is unchanged).

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-20 00:12:05 +02:00
476f55b8e5 docs(store): add STORE.yaml, MODULE.md/de + icon for the store
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m53s
Signed-off-by: flemming-it <sf@flemming.it>
2026-06-19 02:54:55 +02:00
edfe035e83 ci: point checkout + SDK insteadOf at git.flemming.ai
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m37s
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>
2026-06-18 12:31:37 +02:00
05bd00c461 ci: add Forgejo CI workflow (mirror text-extract)
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 2s
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>
2026-06-18 12:13:11 +02:00
255d7e2615 fix(clippy): bring source under -D warnings ahead of CI
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>
2026-06-18 12:13:11 +02:00
69b7d84f73 chore(release): finalize v0.1.0 — LICENSE, NOTICE, WASM artefact
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>
2026-06-18 11:38:40 +02:00
2c3a6be513 feat: initial text-readability-score v0.1.0 (text.readability_score@0.1.0)
Composite readability/complexity score: Flesch-DE + Verweistiefe
+ verb-distance. Reuse-lens: any project that needs to flag
"this text is hard to read" — government letters, AGB, scientific
abstracts.

Flesch-DE follows the Amstad adaptation:

  FRE_de = 180 − ASL − (58.5 × ASW)

ASL = avg sentence length (words); ASW = avg syllables per word.
A FRE_de around 30 reads as "schwer"; below 10 is technical-jargon
territory.

Verweistiefe uses an optional graph input (output of
graph.citation_extract). i.V.m.-edges count double because they
force the reader to chase a second norm.

composite_frust scales both to 0..10 and averages, so the output
is a single number the heatmap can plot against the §6 Studie
"Frust"-Achse.

Pure in-WASM, zero filesystem, zero network.

Reserved for next versions:

  - 0.2: noun-density and Schachtelsatz penalty
  - 0.3: per-paragraph breakdown so the UI can highlight the
         most-frustrating Absatz

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-18 11:25:13 +02:00