diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f8e6946..e7ac781 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -14,7 +14,7 @@ concurrency:
cancel-in-progress: true
jobs:
- validate-and-build:
+ quality-checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -30,52 +30,21 @@ jobs:
sudo apt-get update
sudo apt-get install -y graphviz
- - name: Install Python deps
+ - name: Install package
run: |
python -m pip install --upgrade pip
- pip install rdflib pyshacl graphviz pydot
+ pip install .[dev]
- - name: Validate SHACL
+ - name: Validate SHACL on sample data
run: |
- python tools/validate_shapes.py
+ python -m goblin.validate --data samples/goblin-sample.ttl
- - name: Export TTL graph to DOT/SVG/PNG
+ - name: Lint DOT (render to SVG)
run: |
- python tools/export_instances_dot.py
+ dot -Tsvg goblin-map.dot -o /tmp/goblin-map.svg
- - name: Export web JSON
+ - name: Verify WebVOWL availability
run: |
- python tools/export_web_json.py
-
- - name: Set up Node
- uses: actions/setup-node@v4
- with:
- node-version: "20"
-
- - name: Build web (TS -> docs)
- working-directory: web
- run: |
- npm ci
- npm run build
-
- - name: Upload artifact (docs)
- uses: actions/upload-pages-artifact@v3
- with:
- path: docs
-
- deploy:
- needs: validate-and-build
- if: github.ref == 'refs/heads/main'
- permissions:
- pages: write
- id-token: write
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
- steps:
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
+ curl -I --fail https://service.tib.eu/webvowl/
diff --git a/README.md b/README.md
index 6d860d0..9d6e5dd 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,14 @@ This bundle contains:
- `goblin-map.dot` — Graphviz DOT file for a "Goblin map" of common domains.
- `goblin-agent-lim42.md` — lim42-ready agent spec for computing Goblin scores.
- `goblin-energy-gradient.md` — energy gradient interpretation with simple flow equations.
+- Rendered `docs/goblin-map.svg` — quick visual of the Goblin map without requiring Graphviz (generate PNG locally with `dot -Tpng goblin-map.dot -o docs/goblin-map.png` if you prefer).
+
+You can `pip install .` (or `pip install -e .` for development) to get the ontology, SHACL shapes, and validation helpers as a tiny Python package (`goblin-score`).
+Then validate data against the bundled shapes (after installation):
+
+```bash
+python -m goblin.validate --data samples/goblin-sample.ttl
+```
## Meme / Usage
@@ -29,4 +37,35 @@ The Goblin score is defined in the ontology as `ui:goblinScore` and is an alias
- Push this bundle into `nkllon/goblin` as initial commit.
- Wire `goblin-agent-lim42.md` into lim42 as a reusable agent profile.
-- Render `goblin-map.dot` with Graphviz to produce a PNG/SVG for documentation.
+- Render `goblin-map.dot` with Graphviz to produce a PNG/SVG for documentation. ✅
+
+## Scoring workflow (lim42 example)
+
+Use the existing lim42 agent prompt (`goblin-agent-lim42.md`) and weights to go from a system description to a JSON score.
+
+**Example prompt input** (shortened):
+
+> "A multi-tenant SaaS with asynchronous provisioning, eventual consistency across regions, and teams expecting deterministic dashboards. Observability is partial; on-call engineers rely on retries and manual overrides."
+
+**Expected JSON output shape** (weights baked into the agent):
+
+```json
+{
+ "goblin_score": 0.82,
+ "dimensions": {
+ "illusion_closure": 0.90,
+ "distributed_state": 0.85,
+ "async_nondeterminism": 0.80,
+ "stakeholder_demand_for_determinism": 0.70,
+ "observability_deficit": 0.60,
+ "energy_gradient_misalignment": 0.95
+ },
+ "commentary": "Async provisioning and partial observability create large closure illusions; teams expect deterministic dashboards."
+}
+```
+
+## Goblin map preview
+
+- [SVG](docs/goblin-map.svg) — scalable version from the DOT source (`goblin-map.dot`).
+- To produce a PNG locally (not checked into the repo), run `dot -Tpng goblin-map.dot -o docs/goblin-map.png`.
+
diff --git a/docs/goblin-map.svg b/docs/goblin-map.svg
new file mode 100644
index 0000000..934d4af
--- /dev/null
+++ b/docs/goblin-map.svg
@@ -0,0 +1,126 @@
+
+
+
+
+
diff --git a/docs/kg.html b/docs/kg.html
index 56b029b..2cd5f71 100644
--- a/docs/kg.html
+++ b/docs/kg.html
@@ -18,6 +18,7 @@
goblin-ontology.ttl ·
goblin-shapes.ttl
Use the embedded WebVOWL app and load the TTL via its UI.
+ Goblin map (SVG)