Reorganize docs into category folders and drop the retired head-review page
Full build / Import + headless tests (push) Successful in 41s
Full build / Full desktop build + optional release (push) Skipped

Group the top-level docs into docs/project, docs/design, docs/assets and
docs/process, each with its own README index. Delete the superseded
docs/screens/head-review page and sheets. Rewrite every markdown link,
absolute docs path and tool/test reference to the new locations, fix the
pre-existing broken anchors and remove the dead Joke Shop photo-board link.
check_docs OK, Python tooling 167/167.
This commit is contained in:
zwitschi committed 2026-11-06 20:13:03 +01:00
1 parent 045ed2a58f
commit 2ba40f3578
57 files changed
+406 -414

No files matched your search

+1 -1
View File
@@ -160,7 +160,7 @@ dependencies or replace the tools above.
network/budget-dependent review aids, not deterministic CI gates.
- `openrouter_judge.py` is an implementation detail imported by other tools.
- `check_docs.py` and `export_venues.gd` are short, single-purpose commands;
documenting them in this README and `docs/asset-tooling.md` is enough.
documenting them in this README and `docs/assets/asset-tooling.md` is enough.
- `npc_baseline.py`, `npc_proportions.py` and `three_up.py` are better included
as references/steps inside the proposed asset or release skill than exposed as
separate skills; fragmenting them would increase routing mistakes.
+4 -4
View File
@@ -4,7 +4,7 @@
Everything here is modelled procedurally inside Blender (flatpak, headless) so
the assets are reproducible from source. Outputs are staged for *later*
integration: nothing in the game loads them yet (see
`docs/blender-assets.md` for the integration contract).
`docs/assets/blender-assets.md` for the integration contract).
# build every asset (or --only name,name) -> assets/models/blender/**.glb
flatpak run org.blender.Blender --background \
@@ -1489,7 +1489,7 @@ def build_character(name, head="face"):
# is 4 skinned meshes on the same 62-joint armature; the build joins them
# **without welding** (a weld corrupts the skin weights), renames the upstream
# materials onto the five tint slots, unwraps the degenerate source UVs and bakes
# the arm-down rest. See docs/npc-model-sourcing.md for the measurements.
# the arm-down rest. See docs/assets/npc-model-sourcing.md for the measurements.
QUATERNIUS_SRC = SRC_DIR / "quaternius"
@@ -1497,7 +1497,7 @@ QUATERNIUS_SRC = SRC_DIR / "quaternius"
# (face, hair detail and hivis fabrics); anything not listed is kept too, so a
# new upstream material shows up as an extra fixed-colour slot instead of
# silently disappearing. The maps were derived from the per-material height bands
# measured in docs/npc-model-sourcing.md.
# measured in docs/assets/npc-model-sourcing.md.
QUATERNIUS_SOURCES = {
"casual": {
"file": "Casual.glb",
@@ -2605,7 +2605,7 @@ def build_gear(name):
# procedural library's 0.315 m, and its centre sits 0.07 m higher, so the
# head gear is scaled and lifted to match. The procedural fallback then
# wears slightly small hats — cosmetic, and recorded in
# docs/blender-assets.md.
# docs/assets/blender-assets.md.
centre = Vector((0.0, 0.0, HEAD_GEAR_LIFT))
obj.data.transform(
Matrix.Translation(centre)
+4 -4
View File
@@ -3,7 +3,7 @@
#
# Requirements:
# - Godot 4.7.2 (or the version in project.godot `config/features`) on PATH,
# with export templates installed (see docs/RELEASING.md).
# with export templates installed (see docs/process/RELEASING.md).
# - Run from the repository root.
#
# Produces:
@@ -20,8 +20,8 @@ VERSION="$(grep -oP 'config/version="\K[^"]+' project.godot)"
PLAYER_DOCS=(
"CREDITS.md"
"PRIVACY.md"
"docs/accessibility.md"
"docs/known-limitations.md"
"docs/design/accessibility.md"
"docs/design/known-limitations.md"
)
mkdir -p build
# Presets now embed the PCK into a single binary; drop stale .pck leftovers.
@@ -95,4 +95,4 @@ shasum -a 256 build/*"${VERSION}"* > "build/SHA256SUMS-${VERSION}.txt"
cat "build/SHA256SUMS-${VERSION}.txt"
echo ""
echo "Upload to: https://git.allucanget.biz/zwitschi/security-game/releases"
echo "See docs/RELEASING.md for the full release checklist."
echo "See docs/process/RELEASING.md for the full release checklist."
+1 -1
View File
@@ -16,7 +16,7 @@ path must be absolute):
python3 tools/npc_pipeline.py palette # derive outfit colours -> palette.json
python3 tools/npc_pipeline.py audit
Contract (frozen in ADR-0013 and docs/blender-assets.md):
Contract (frozen in ADR-0013 and docs/assets/blender-assets.md):
* scene root "Rig" with a skinned mesh and an armature
* bones: Head, HipL/R, KneeL/R, ShoulderL/R, ElbowL/R, HandL/R
+2 -2
View File
@@ -1,7 +1,7 @@
"""Keep the 3D model review scorecard honest.
Every catalogue asset (characters, gear, props) must have a row in
`docs/3d-model-review.md`, and the character rows must carry a verdict. This does
`docs/assets/3d-model-review.md`, and the character rows must carry a verdict. This does
not judge the art; it only fails when an asset is added or renamed without being
reviewed, which is how a scorecard silently rots.
"""
@@ -13,7 +13,7 @@ from pathlib import Path
import blender_assets as model
ROOT = Path(model.__file__).resolve().parent.parent
REVIEW = ROOT / "docs" / "3d-model-review.md"
REVIEW = ROOT / "docs" / "assets" / "3d-model-review.md"
def catalogue_names() -> set[str]: