fix(store): dash capability IDs + .chain bundles (chain catalog conformance)

chain's catalog charset (naming.rs check_segment, capability-namespaces.yaml)
allows only [a-z0-9-] per dot-segment — underscores are rejected by
`chain validate`. Repack all 8 modules with the dash capability form
(econ.skm-score, law.benefit-score, …) and align the store index, flows,
app strings and docs to match. Bundles now use the .chain extension
(content-addressed; legacy .fai would still install).

- store/store.yaml: name: dash, wasm_url .chain, refreshed sha256
- store/SHA256.txt: 8 new .chain hashes
- flows + app/lib + RUN.md + MACHBARKEITSSTUDIE.md: capability refs _ -> -
- left untouched: text_akoma_normalize.wasm artifact, DB field skm_score,
  backlog module law.skm_score

Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
flemming-it 2026-06-20 00:11:39 +02:00
parent c51ef0e004
commit 0c536c5b91
11 changed files with 104 additions and 96 deletions

View file

@ -5,7 +5,7 @@
# Decision by chain 2026-06-19: Forgejo-raw is canonical (Studio was already
# wired to it; reclaim publishes via plain `git push`, no SSH to the mirror).
#
# STATUS (2026-06-19). Per chain: publish UNSIGNED for now —
# STATUS (2026-06-20). Per chain: publish UNSIGNED for now —
# `require_signatures` is off by default; FAI_SIGNING_KEY untouched;
# a Recl∆Im-own signing key + per-store pinning come later.
# * sha256 — REAL, from local `chain pack` of each module.
@ -13,25 +13,32 @@
# in store/SHA256.txt. Bundles are UNSIGNED.
# * signature — intentionally absent for now (see above).
# * wasm_url — Forgejo raw URLs in this repo under bundles/.
# Publish = commit store.yaml + bundles/*.fai and
# Publish = commit store.yaml + bundles/*.chain and
# `git push` to chain-modules/reclaim (main).
#
# NAMING NOTE (RESOLVED 2026-06-19 by chain): capability IDs are the
# source of truth and the store `name:` must match the bundled
# `provides.capability` EXACTLY (resolution is string-exact). The index
# now uses the UNDERSCORE form (`econ.skm_score`) to match the modules.
# Dashes are valid in capability IDs in general (e.g. the SPARK bridge
# uses `document.formal-check`) — but the index must mirror the manifest.
# NAMING NOTE (2026-06-20): capability IDs are the source of truth and the
# store `name:` must match the bundled `provides.capability` EXACTLY
# (resolution is string-exact). chain's catalog charset (`naming.rs`
# `check_segment`, `capability-namespaces.yaml`) allows only `[a-z0-9-]`
# per dot-segment — NO underscore. So all 8 modules were repacked with the
# DASH form (`econ.skm-score`, `law.benefit-score`, …) and this index
# mirrors that. (The `chain validate` lint enforces dash; pack/install do
# not — but we conform to the catalog rather than rely on lax gates.)
#
# EXTENSION NOTE (2026-06-20): bundles use the `.chain` extension (current
# convention, `bundle.rs` BUNDLE_EXT). Bundles are content-addressed by
# sha256, so the extension is cosmetic and legacy `.fai` would also
# install — but we match the current convention.
schema_version: 1
modules:
- name: text.akoma_normalize
- name: text.akoma-normalize
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-akoma-normalize-0.1.0.fai
sha256: fdf4f6e369280fc91608d4e7de78cdd0d6d399a75512a10765b2c632df41bed2
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-akoma-normalize-0.1.0.chain
sha256: 1c17771f632a5562534afc0e2420f8d05009cd988bf05899e8d53b3e550bf826
tagline:
en: "Normalize legal documents to Akoma Ntoso"
de: "Rechtsdokumente nach Akoma Ntoso normalisieren"
@ -43,12 +50,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/text-akoma-normalize
- name: text.deontic_extract
- name: text.deontic-extract
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-deontic-extract-0.1.0.fai
sha256: c944d60f9a6a562dd6cbd03b9709a662a60c764a7ea81a1c98f2bd077e356d79
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-deontic-extract-0.1.0.chain
sha256: decf49eb8098a202ab858e868b122620eb55b58e2cc464ba0bbb61025defca4b
tagline:
en: "Extract duties, prohibitions and permissions from norms"
de: "Pflichten, Verbote und Erlaubnisse aus Normen extrahieren"
@ -60,12 +67,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/text-deontic-extract
- name: graph.citation_extract
- name: graph.citation-extract
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/graph-citation-extract-0.1.0.fai
sha256: e8d70e322f1df83ebaea36676ec42f27c26b4fac78eedf23499f25225318c9f4
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/graph-citation-extract-0.1.0.chain
sha256: dd1e9bd7c45d29804f5ab4360f6ff9d8d2ab608299633dff438eaa5f81807463
tagline:
en: "Build typed citation graphs from legal text"
de: "Typisierte Zitationsgraphen aus Rechtstext bauen"
@ -77,12 +84,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/graph-citation-extract
- name: text.readability_score
- name: text.readability-score
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-readability-score-0.1.0.fai
sha256: 1427f101cf56ac58b1a10efc9a63e3e4cf2292841b214d533869b9504019bb73
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/text-readability-score-0.1.0.chain
sha256: 382d470f3243dd02b2da6f210fee9573f5ab64e9439358a74af34a0f8167a5b6
tagline:
en: "Composite readability and complexity score"
de: "Komposit-Score für Lesbarkeit und Komplexität"
@ -94,12 +101,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/text-readability-score
- name: stats.cohort_size
- name: stats.cohort-size
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/stats-cohort-size-0.1.0.fai
sha256: 6bc1ee5862728d218f2e40060146099f05eb67cc9e9c4c7a2eec5928c0a0b6fe
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/stats-cohort-size-0.1.0.chain
sha256: 321458faa4e8c7a2c016409052b00f89a22a3486c28ec4dccd3586426ef7037c
tagline:
en: "Resolve addressee cohort sizes"
de: "Größe von Adressaten-Kohorten ermitteln"
@ -111,12 +118,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/stats-cohort-size
- name: graph.shapley_attribution
- name: graph.shapley-attribution
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/graph-shapley-attribution-0.1.0.fai
sha256: 93507cba5c4e819ce755f0e89cc79a4350363fb4aa96132cefd0eeb966b320a4
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/graph-shapley-attribution-0.1.0.chain
sha256: 0d776294f86d8e397149efb18100543ea3951129780fed85ad9d1243ec146800
tagline:
en: "Shapley-style attribution on weighted graphs"
de: "Shapley-Attribution auf gewichteten Graphen"
@ -128,12 +135,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/graph-shapley-attribution
- name: econ.skm_score
- name: econ.skm-score
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/econ-skm-score-0.1.0.fai
sha256: 57e6c6a855f6e542e1045a0c9b0c0d484a2e7297de084ae4d7865173771e7493
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/econ-skm-score-0.1.0.chain
sha256: dda50b045ab3b054fe71c81c8510a15e58a4da1a8218a7961e7b014854f0d125
tagline:
en: "Standard Cost Model (SKM) bureaucracy cost"
de: "Standardkostenmodell (SKM) — Bürokratiekosten"
@ -145,12 +152,12 @@ modules:
license: Apache-2.0
repository: https://git.flemming.ai/chain-modules/econ-skm-score
- name: law.benefit_score
- name: law.benefit-score
versions:
- version: 0.1.0
status: published
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/law-benefit-score-0.1.0.fai
sha256: 2781518744e6b1048216b2fc4b784ab3f18e55cb3fc9e77cb640e302b9ed7bb2
wasm_url: https://git.flemming.ai/chain-modules/reclaim/raw/branch/main/bundles/law-benefit-score-0.1.0.chain
sha256: 4f02c2695640ba92fe7cd8dc263bcdd024ceeaa1c1ef29848286ec16135e0f50
tagline:
en: "7-dimensional regulatory benefit score"
de: "7-dimensionaler Nutzen-Score für Regulierung"