← Planner5D: Plan, Build, CreateCONTENT HISTORY

Update to Planner5D: Plan, Build, Create

Snapshot Oct 9, 2026 · 18:02 UTC · version 1.3.1

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 30 files: .app.json, .codex-plugin/plugin.json, assets/planner5d-composer-dark.png, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

{"sha256":"51d981135d5ea3c7e419742169bced5f61d6181389bcd56524410035d236ee4a","size":127}

After

Not present

Package file

Before

a9462de1ac0826a9881fa8dfd90ba3703941d5d0a357329709e8388e774d898d

After

d23b218a5d568aa15ac30204ed126ee2be2e732a0861f148e3794dd4d669172b

Package file

Before

2490

After

2065

Package file

Before

Not present

After

{"sha256":"66133fb7238182d1a74f6f6925b0600d765827d68a74d900f2c4b9a6e935980a","size":2057}

Compare saved observations

Download comparison JSON

skills/planner5d-floorplan-recheck/references/geometry-correction.md

--- before
+++ after
@@ -0,0 +1,13 @@
+# Correct measured geometry
+
+Read this only after a same-basis comparison establishes a defect outside source tolerance. Preserve already-matching geometry and openings.
+
+Distinguish uniform scale error from local shape error. A global floor scale needs multiple independent X/Y anchors supporting one factor and authorization for its effects on walls/furniture. Nonuniform drift needs local correction. Use connected native rooms and normal perimeter walls; do not hide ordinary room boundaries and replace the shell with partitions. Keep source-specific special construction where required.
+
+Inspect native properties and correct the largest discrepancy first. Use current revisions and stable operation keys, preserve partial IDs, then remeasure affected neighbors and openings. If the discrepancy does not improve, change the diagnosis or report the blocker instead of nudging or rebuilding repeatedly.
+
+A single wall reaching its target does not prove that a room stayed rectangular or neighbors stayed correct. For a straight parallel edge, coordinated movement of its two native corner points can preserve shape better. Discover point IDs and shared-corner behavior, keep fixed/shared edges stationary and verify every affected outline, usable span and opening afterwards. The installed `planner5d-webmcp/references/room-construction.md` has the detailed native-room procedure when available; otherwise inspect live native tools.
+
+Moving a room carries its contents. Moving an edge can affect attached openings. Re-read members before subsequent edits. A batch can contain several history steps; one Undo need not restore the whole batch or every propagated neighbor change. Verify recovery against the before-state, then leave the intended final state. Keep a reproduction if native Undo or attachments do not recover correctly.
+
+Use 2D/3D views and structural/spatial validation to check the shell. A geometry-only pass is not a complete valid project; unchecked circulation/mesh clearance is not a certification.
Full technical diff · 31 changed fields

removed /files/.app.json

BEFORE
{
  "sha256": "51d981135d5ea3c7e419742169bced5f61d6181389bcd56524410035d236ee4a",
  "size": 127
}
AFTER
Field is absent

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"a9462de1ac0826a9881fa8dfd90ba3703941d5d0a357329709e8388e774d898d"
AFTER
"d23b218a5d568aa15ac30204ed126ee2be2e732a0861f148e3794dd4d669172b"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
2490
AFTER
2065

added /files/assets~1planner5d-composer-dark.png

BEFORE
Field was absent
AFTER
{
  "sha256": "66133fb7238182d1a74f6f6925b0600d765827d68a74d900f2c4b9a6e935980a",
  "size": 2057
}

added /files/assets~1planner5d-composer-light.png

BEFORE
Field was absent
AFTER
{
  "sha256": "5487c6bbd05788c293c053e129d993012d4b079ae4d794343bfc01e613a7fcd0",
  "size": 2069
}

added /files/assets~1planner5d-directory-dark.png

BEFORE
Field was absent
AFTER
{
  "sha256": "8091eab4406b5a356269530b88d2f57c77e31927c407f5da5f61a90f5af26e94",
  "size": 17314
}

added /files/assets~1planner5d-directory-light.png

BEFORE
Field was absent
AFTER
{
  "sha256": "fd61e0dbf2bfaf1bc409ae7705aeb83e1f6fb773fc40d7039ffd02cd3fed8bb6",
  "size": 16342
}

added /files/assets~1planner5d-sidebar.svg

BEFORE
Field was absent
AFTER
{
  "sha256": "2ab60328627d397b95b8dd5e51548368407e3c5b75d3adfa0df7d6e4e3c02411",
  "size": 2773
}

added /files/mcp.json

BEFORE
Field was absent
AFTER
{
  "sha256": "e293a8150d463f4631b509a7fcfc6b3828b1b05f4954bc93a5aa299672c38064",
  "size": 213
}

added /files/plugin.json

BEFORE
Field was absent
AFTER
{
  "sha256": "eba3a19900c1ae64b25054e956ec6d7df0e6b5579b2e50add6426f6a197c0f76",
  "size": 9224
}

added /files/skills~1planner5d-ai-render~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "8d24c4be1fc73f8db5ed245652967dafebd8d859073cfda4cb8ccd7e4806d1c4",
  "size": 2702
}

added /files/skills~1planner5d-ai-render~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "206aea82d814f96a46bd200d7697c32a15169ea12d8ae1fba5b3b4117ece4ef7",
  "size": 381
}

added /files/skills~1planner5d-floorplan-recheck~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "f13d8ee8222f2a0cef473bc7c2b6fce70522b56bbf12c40f627665d74791a49f",
  "size": 9011
}

added /files/skills~1planner5d-floorplan-recheck~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "ea9ef37d25e3de26df0807a97c2e82b4e67c14d85afa3cf86263a356f0c9a7d0",
  "size": 481
}

added /files/skills~1planner5d-floorplan-recheck~1references~1geometry-correction.md

BEFORE
Field was absent
AFTER
{
  "sha256": "2c17717bb5003d08d23b4b1393e73d27a98665319dec7100003983594eee016a",
  "size": 2023
}

added /files/skills~1planner5d-floorplan-recheck~1references~1measurement-ledger.md

BEFORE
Field was absent
AFTER
{
  "sha256": "259fc661553e337930fdfc5ef0a3e8b161d013feb03b31d32a5ee3fc1c327167",
  "size": 1982
}

added /files/skills~1planner5d-floorplan-recheck~1references~1recognition.md

BEFORE
Field was absent
AFTER
{
  "sha256": "7e421eafbaa73783f3d168c6311de6937dc852750d4a68d794d6ef3aac875d7e",
  "size": 2050
}

added /files/skills~1planner5d-floorplan-recheck~1scripts~1compare_measurements.py

BEFORE
Field was absent
AFTER
{
  "sha256": "f1c10ce71198cdba4fc694d8eb3c5037e763b2690afd3823380e24ca7bbf02bb",
  "size": 3390
}

added /files/skills~1planner5d-model-import~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "e72881f0db2d11bdb3d40e5e9a263b42295e1c9e10e3887f3f4a565c7c6b28b0",
  "size": 8538
}

added /files/skills~1planner5d-model-import~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "10e396406209b09b91b4a9e37ed57b0373cd43ddf6350701ab40c221febfebc2",
  "size": 529
}

added /files/skills~1planner5d-model-import~1references~1fit-evidence.md

BEFORE
Field was absent
AFTER
{
  "sha256": "76f133151fa17391188fc004fb1556aafd099e01c48e034a8b6d869e6d7fabdb",
  "size": 3773
}

added /files/skills~1planner5d-native-app~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "ae81dd00cb57ab15a8814ff5503debd366e54a7a77740485363ab6edd85810cf",
  "size": 5519
}

added /files/skills~1planner5d-native-app~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "41f53290bfb72ff1f19346b37da6d08527434a93f6cc4b5cd6a2eee12a6b5935",
  "size": 383
}

added /files/skills~1planner5d-native-app~1references~1ai-studio.md

BEFORE
Field was absent
AFTER
{
  "sha256": "05600ffb0d46c6c0177bf580914959e470acf88cb7de89e5e4bc4281953e26e2",
  "size": 2934
}

added /files/skills~1planner5d-native-app~1references~1workspace.md

BEFORE
Field was absent
AFTER
{
  "sha256": "7817067d55e9a5d6f3abf2127e10723f75c2a38479106cf6a0a492a8113c8b9e",
  "size": 2956
}

added /files/skills~1planner5d-webmcp~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "c20c726f0c07e10cd643a25d32cd3541e06c8356613a370dc122bc14177b9477",
  "size": 13518
}

added /files/skills~1planner5d-webmcp~1agents~1openai.yaml

BEFORE
Field was absent
AFTER
{
  "sha256": "8aef647838c79fbd4a77ff1e83876547ef1056d5785e529a28f75e7e201f2ab2",
  "size": 493
}

added /files/skills~1planner5d-webmcp~1references~1fit-evidence.md

BEFORE
Field was absent
AFTER
{
  "sha256": "76f133151fa17391188fc004fb1556aafd099e01c48e034a8b6d869e6d7fabdb",
  "size": 3773
}

added /files/skills~1planner5d-webmcp~1references~1floorplan-handoff.md

BEFORE
Field was absent
AFTER
{
  "sha256": "6c5bacf921205c88fe89357676f7d2c30b8a15ecd5be2558c0b99037344c22bd",
  "size": 1870
}

added /files/skills~1planner5d-webmcp~1references~1picture-reconstruction.md

BEFORE
Field was absent
AFTER
{
  "sha256": "6584e41bc9d6527ebe4fbdc35b9a6646ee010a61c9ab1f4fb6d0a99b3edc1bf5",
  "size": 10617
}

added /files/skills~1planner5d-webmcp~1references~1room-construction.md

BEFORE
Field was absent
AFTER
{
  "sha256": "31593f6b6286f60f23a790dce225645ec51960f10776ce95787ddf4cac34c709",
  "size": 9091
}
Full snapshot data
{
  "files": {
    ".codex-plugin/plugin.json": {
      "sha256": "d23b218a5d568aa15ac30204ed126ee2be2e732a0861f148e3794dd4d669172b",
      "size": 2065
    },
    "assets/planner5d-composer-dark.png": {
      "sha256": "66133fb7238182d1a74f6f6925b0600d765827d68a74d900f2c4b9a6e935980a",
      "size": 2057
    },
    "assets/planner5d-composer-light.png": {
      "sha256": "5487c6bbd05788c293c053e129d993012d4b079ae4d794343bfc01e613a7fcd0",
      "size": 2069
    },
    "assets/planner5d-directory-dark.png": {
      "sha256": "8091eab4406b5a356269530b88d2f57c77e31927c407f5da5f61a90f5af26e94",
      "size": 17314
    },
    "assets/planner5d-directory-light.png": {
      "sha256": "fd61e0dbf2bfaf1bc409ae7705aeb83e1f6fb773fc40d7039ffd02cd3fed8bb6",
      "size": 16342
    },
    "assets/planner5d-sidebar.svg": {
      "sha256": "2ab60328627d397b95b8dd5e51548368407e3c5b75d3adfa0df7d6e4e3c02411",
      "size": 2773
    },
    "mcp.json": {
      "sha256": "e293a8150d463f4631b509a7fcfc6b3828b1b05f4954bc93a5aa299672c38064",
      "size": 213
    },
    "plugin.json": {
      "sha256": "eba3a19900c1ae64b25054e956ec6d7df0e6b5579b2e50add6426f6a197c0f76",
      "size": 9224
    },
    "skills/planner5d-ai-render/SKILL.md": {
      "sha256": "8d24c4be1fc73f8db5ed245652967dafebd8d859073cfda4cb8ccd7e4806d1c4",
      "size": 2702
    },
    "skills/planner5d-ai-render/agents/openai.yaml": {
      "sha256": "206aea82d814f96a46bd200d7697c32a15169ea12d8ae1fba5b3b4117ece4ef7",
      "size": 381
    },
    "skills/planner5d-floorplan-recheck/SKILL.md": {
      "sha256": "f13d8ee8222f2a0cef473bc7c2b6fce70522b56bbf12c40f627665d74791a49f",
      "size": 9011
    },
    "skills/planner5d-floorplan-recheck/agents/openai.yaml": {
      "sha256": "ea9ef37d25e3de26df0807a97c2e82b4e67c14d85afa3cf86263a356f0c9a7d0",
      "size": 481
    },
    "skills/planner5d-floorplan-recheck/references/geometry-correction.md": {
      "sha256": "2c17717bb5003d08d23b4b1393e73d27a98665319dec7100003983594eee016a",
      "size": 2023
    },
    "skills/planner5d-floorplan-recheck/references/measurement-ledger.md": {
      "sha256": "259fc661553e337930fdfc5ef0a3e8b161d013feb03b31d32a5ee3fc1c327167",
      "size": 1982
    },
    "skills/planner5d-floorplan-recheck/references/recognition.md": {
      "sha256": "7e421eafbaa73783f3d168c6311de6937dc852750d4a68d794d6ef3aac875d7e",
      "size": 2050
    },
    "skills/planner5d-floorplan-recheck/scripts/compare_measurements.py": {
      "sha256": "f1c10ce71198cdba4fc694d8eb3c5037e763b2690afd3823380e24ca7bbf02bb",
      "size": 3390
    },
    "skills/planner5d-model-import/SKILL.md": {
      "sha256": "e72881f0db2d11bdb3d40e5e9a263b42295e1c9e10e3887f3f4a565c7c6b28b0",
      "size": 8538
    },
    "skills/planner5d-model-import/agents/openai.yaml": {
      "sha256": "10e396406209b09b91b4a9e37ed57b0373cd43ddf6350701ab40c221febfebc2",
      "size": 529
    },
    "skills/planner5d-model-import/references/fit-evidence.md": {
      "sha256": "76f133151fa17391188fc004fb1556aafd099e01c48e034a8b6d869e6d7fabdb",
      "size": 3773
    },
    "skills/planner5d-native-app/SKILL.md": {
      "sha256": "ae81dd00cb57ab15a8814ff5503debd366e54a7a77740485363ab6edd85810cf",
      "size": 5519
    },
    "skills/planner5d-native-app/agents/openai.yaml": {
      "sha256": "41f53290bfb72ff1f19346b37da6d08527434a93f6cc4b5cd6a2eee12a6b5935",
      "size": 383
    },
    "skills/planner5d-native-app/references/ai-studio.md": {
      "sha256": "05600ffb0d46c6c0177bf580914959e470acf88cb7de89e5e4bc4281953e26e2",
      "size": 2934
    },
    "skills/planner5d-native-app/references/workspace.md": {
      "sha256": "7817067d55e9a5d6f3abf2127e10723f75c2a38479106cf6a0a492a8113c8b9e",
      "size": 2956
    },
    "skills/planner5d-webmcp/SKILL.md": {
      "sha256": "c20c726f0c07e10cd643a25d32cd3541e06c8356613a370dc122bc14177b9477",
      "size": 13518
    },
    "skills/planner5d-webmcp/agents/openai.yaml": {
      "sha256": "8aef647838c79fbd4a77ff1e83876547ef1056d5785e529a28f75e7e201f2ab2",
      "size": 493
    },
    "skills/planner5d-webmcp/references/fit-evidence.md": {
      "sha256": "76f133151fa17391188fc004fb1556aafd099e01c48e034a8b6d869e6d7fabdb",
      "size": 3773
    },
    "skills/planner5d-webmcp/references/floorplan-handoff.md": {
      "sha256": "6c5bacf921205c88fe89357676f7d2c30b8a15ecd5be2558c0b99037344c22bd",
      "size": 1870
    },
    "skills/planner5d-webmcp/references/picture-reconstruction.md": {
      "sha256": "6584e41bc9d6527ebe4fbdc35b9a6646ee010a61c9ab1f4fb6d0a99b3edc1bf5",
      "size": 10617
    },
    "skills/planner5d-webmcp/references/room-construction.md": {
      "sha256": "31593f6b6286f60f23a790dce225645ec51960f10776ce95787ddf4cac34c709",
      "size": 9091
    }
  }
}

SHA-256 of public snapshot: a6378398b5260eff7e119fddc20b92964a37250e1956bce5ba467bc6d26d9b65