Skip to content

Commit c647ca1

Browse files
hyperpolymathclaude
andcommitted
chore: add 17 game profile clades, fix justfile, update STATE.a2ml
- Generate 17 gsa-game-* child clade directories from profiles/ - Move generate-clades heredoc to scripts/generate-clades.sh (justfile parse fix) - Update STATE.a2ml with actual GSA project state and milestones Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 148b36c commit c647ca1

20 files changed

Lines changed: 419 additions & 72 deletions

File tree

.machine_readable/6a2/STATE.a2ml

Lines changed: 38 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,58 @@
11
# SPDX-License-Identifier: PMPL-1.0-or-later
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
4-
# STATE.a2ml — Project state checkpoint (META-TEMPLATE)
5-
#
6-
# This is the STATE file for rsr-template-repo itself.
7-
# When consumed by a new project, replace {{PLACEHOLDER}} tokens
8-
# and customize sections below for the target project.
4+
# STATE.a2ml — Project state checkpoint for Game Server Admin
95

106
[metadata]
11-
project = "rsr-template-repo"
12-
version = "0.2.0"
13-
last-updated = "2026-02-28"
14-
status = "active" # active | paused | archived
7+
project = "game-server-admin"
8+
version = "0.1.0"
9+
last-updated = "2026-03-22"
10+
status = "active"
1511

1612
[project-context]
17-
name = "rsr-template-repo"
18-
purpose = "Canonical RSR-compliant repository template providing scaffolding for all hyperpolymath projects — including CI/CD, AI manifests, ABI/FFI standards, container ecosystem, and governance infrastructure."
19-
completion-percentage = 95
13+
name = "game-server-admin"
14+
purpose = "Universal game server probe, configuration management, and administration via Gossamer webview + VeriSimDB backing store. Extracts config into A2ML format with full provenance tracking."
15+
completion-percentage = 75
2016

2117
[position]
22-
phase = "maintenance" # design | implementation | testing | maintenance | archived
23-
maturity = "production" # experimental | alpha | beta | production | lts
18+
phase = "implementation"
19+
maturity = "alpha"
2420

2521
[route-to-mvp]
2622
milestones = [
27-
{ name = "Phase 0: Core scaffolding (justfile, CI/CD, .machine_readable)", completion = 100 },
28-
{ name = "Phase 1: ABI/FFI standard (Idris2/Zig templates)", completion = 100 },
29-
{ name = "Phase 1b: AI Gatekeeper Protocol (0-AI-MANIFEST.a2ml)", completion = 100 },
30-
{ name = "Phase 1c: TOPOLOGY.md standard and guide", completion = 100 },
31-
{ name = "Phase 1d: Maintenance gate (axes, checklist, approach)", completion = 100 },
32-
{ name = "Phase 1e: Trustfile / contractiles", completion = 100 },
33-
{ name = "Phase 2: Container ecosystem templates (stapeln)", completion = 100 },
34-
{ name = "Phase 3: Multi-forge sync hardening", completion = 0 },
35-
{ name = "Phase 4: Nix/Guix reproducible shells", completion = 50 },
23+
{ name = "Phase 1: Repo bootstrap from rsr-template-repo", completion = 100 },
24+
{ name = "Phase 2: Idris2 ABI layer (Types, Foreign, Layout)", completion = 100 },
25+
{ name = "Phase 3: Zig FFI layer (probe, extract, emit, VeriSimDB, actions, profiles)", completion = 100 },
26+
{ name = "Phase 4: Ephapax core (Shell, Bridge, Types, Capabilities)", completion = 100 },
27+
{ name = "Phase 5: 17 game profiles (A2ML definitions)", completion = 100 },
28+
{ name = "Phase 6: Gossamer GUI (host + 7 panels)", completion = 100 },
29+
{ name = "Phase 7: Panel clade definitions (9 clades + 17 game children)", completion = 100 },
30+
{ name = "Phase 8: PanLL integration (registry, engine, clade files)", completion = 100 },
31+
{ name = "Phase 9: VeriSimDB dedicated instance config", completion = 100 },
32+
{ name = "Phase 10: PanLL harness manifest + panel.json descriptors", completion = 100 },
33+
{ name = "Phase 11: Justfile GSA-specific recipes", completion = 100 },
34+
{ name = "Phase 12: Documentation (README, EXPLAINME)", completion = 100 },
35+
{ name = "Phase 13: Integration testing (Zig build + Gossamer link)", completion = 0 },
36+
{ name = "Phase 14: End-to-end test (probe real server → GUI)", completion = 0 },
37+
{ name = "Phase 15: Container deployment (selur-compose)", completion = 0 },
3638
]
3739

3840
[blockers-and-issues]
39-
# No active blockers
41+
blockers = [
42+
{ id = "B1", severity = "medium", description = "Zig FFI needs libgossamer.so linked — requires Gossamer build in PATH" },
43+
{ id = "B2", severity = "low", description = "Bitbucket mirror needs manual repo creation or API token refresh" },
44+
]
4045

4146
[critical-next-actions]
4247
actions = [
43-
"Container templates complete — test with `just container-init`",
44-
"Validate container templates across wolfi-base and static Chainguard images",
45-
"Harden multi-forge sync for GitLab/Bitbucket mirroring edge cases",
46-
"Expand Nix/Guix development shell templates",
48+
"Wire Zig build to link against libgossamer.so from gossamer repo",
49+
"Run `zig build test` to validate FFI integration tests",
50+
"Deploy gsa-verisimdb container and test REST API connectivity",
51+
"End-to-end test: probe a Valheim/Minecraft server through the GUI",
52+
"Generate game profile child clades: `just generate-clades`",
4753
]
4854

49-
[maintenance-status]
50-
last-run-utc = "never"
51-
last-report = "docs/reports/maintenance/latest.json"
52-
last-result = "unknown" # unknown | pass | warn | fail
53-
open-warnings = 0
54-
open-failures = 0
55-
56-
[ecosystem]
57-
part-of = ["RSR Framework", "stapeln ecosystem"]
58-
depends-on = ["stapeln", "selur-compose", "cerro-torre", "svalinn", "vordr", "k9-svc"]
59-
60-
# ---------------------------------------------------------------------------
61-
# NOTE FOR CONSUMERS: When using this template to create a new repo, reset
62-
# the fields above to your project's values and replace all {{PLACEHOLDER}}
63-
# tokens. The milestones above describe the TEMPLATE's evolution, not yours.
64-
# ---------------------------------------------------------------------------
55+
[session-history]
56+
sessions = [
57+
{ date = "2026-03-22", summary = "Created repo — 412 files, 28901 lines. Full ABI/FFI/Core/GUI/Profiles/Clades/VeriSimDB. Pushed to GitHub + GitLab. PanLL integration committed." },
58+
]

Justfile

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -324,34 +324,7 @@ add-profile name:
324324
# Regenerate panel clade definitions from game profiles
325325
generate-clades:
326326
@echo "Generating panel clades from profiles/*.a2ml..."
327-
for profile in profiles/*.a2ml; do \
328-
id=$(grep -oP 'id="\K[^"]+' "$profile" | head -1); \
329-
name=$(grep -oP 'name="\K[^"]+' "$profile" | head -1); \
330-
clade_dir="panel-clades/gsa-game-${id}"; \
331-
mkdir -p "$clade_dir"; \
332-
cat > "$clade_dir/GsaGame$(echo ${id} | sed 's/-//g; s/\b\(.\)/\u\1/g').a2ml" << CLADE_EOF
333-
# SPDX-License-Identifier: PMPL-1.0-or-later
334-
# Auto-generated from profiles/${id}.a2ml
335-
336-
[clade-metadata]
337-
id = "gsa-game-${id}"
338-
name = "GSA ${name}"
339-
short-name = "${name}"
340-
version = "1.0.0"
341-
kind = "game-profile"
342-
icon = "gamepad"
343-
description = "Game profile clade for ${name} — inherits from gsa-game"
344-
345-
[clade-traits]
346-
has-backend = true
347-
has-scanning = true
348-
has-persistence = true
349-
has-real-time = true
350-
351-
[clade-taxonomy]
352-
inherits-from = "gsa-game"
353-
CLADE_EOF
354-
done
327+
@bash scripts/generate-clades.sh
355328
@echo "Generated $(ls -d panel-clades/gsa-game-*/ 2>/dev/null | wc -l) game profile clades"
356329

357330
# Start the dedicated VeriSimDB instance
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/ark.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-ark"
6+
name = "GSA ARK: Survival Evolved"
7+
short-name = "ARK: Survival Evolved"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for ARK: Survival Evolved — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/barotrauma.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-barotrauma"
6+
name = "GSA Barotrauma"
7+
short-name = "Barotrauma"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Barotrauma — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/burble.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-burble"
6+
name = "GSA Burble"
7+
short-name = "Burble"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Burble — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/csgo-cs2.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-csgo-cs2"
6+
name = "GSA Counter-Strike 2"
7+
short-name = "Counter-Strike 2"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Counter-Strike 2 — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/dayz.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-dayz"
6+
name = "GSA DayZ"
7+
short-name = "DayZ"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for DayZ — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/dst.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-dst"
6+
name = "GSA Don't Starve Together"
7+
short-name = "Don't Starve Together"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Don't Starve Together — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/factorio.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-factorio"
6+
name = "GSA Factorio"
7+
short-name = "Factorio"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Factorio — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Auto-generated from profiles/garrysmod.a2ml
3+
4+
[clade-metadata]
5+
id = "gsa-game-garrysmod"
6+
name = "GSA Garry's Mod"
7+
short-name = "Garry's Mod"
8+
version = "1.0.0"
9+
kind = "game-profile"
10+
icon = "gamepad"
11+
description = "Game profile clade for Garry's Mod — inherits from gsa-game"
12+
13+
[clade-traits]
14+
has-backend = true
15+
has-scanning = true
16+
has-persistence = true
17+
has-real-time = true
18+
19+
[clade-taxonomy]
20+
inherits-from = "gsa-game"

0 commit comments

Comments
 (0)