Decision 1 of 8 · Structure

Decision 1: Is the twelve-area tree the one hierarchy?

Prepared 27 September 2026 by Viv Web Solutions · one page per decision so it can be forwarded on its own

Settled 23 September 2026 Yes: the draft site's twelve-area tree is the hierarchy, for now. Condition attached: every change built on it must be documented well enough to reverse. See "How this is reversed" below.

The question

VLCT's topic tags were a flat list of 89 in Drupal. We built a hierarchy on top of them: 12 subject areas, 70 nodes, three levels deep. The design prototype carried an earlier, thinner version of the same idea. We need VLCT to confirm that the tree now on the draft site is the hierarchy going forward, so every other piece of topic work builds on one structure and not two.

What exists today

89topic tags, carried over from Drupal unchanged
70nodes in the draft site's tree, editable in WordPress admin
86 / 89tags placed in the tree
61nodes in the prototype's earlier tree (56 tags placed)

Options

Option A — Confirm the draft site's tree as the one hierarchy our recommendation
  • Every other decision on this list assumes it.
  • The prototype's file is retired; the prototype is regenerated from WordPress when needed.
  • Any node can still be renamed, moved or removed later. Nothing about the tags themselves changes.
Option B — Go back to the prototype's tree
  • Loses 33 tags from the filter, including the site's biggest subjects.
  • Two structures would have to be maintained by hand.
Option C — Start over with a different grouping
  • Possible, but the 12 areas were reviewed term by term on 31 August and approved as a structure. Individual placements are a separate, smaller decision (see decision 10).

What changes if you say yes

Nothing visible right away. It means we stop maintaining the prototype's copy and treat the WordPress tree as the source for the filter, the sidebars, the "All topics" page and the mega menu.

Reversible? Yes, node by node. Editing or removing a node changes only how items are grouped in the filter, never the tags on the content.

How this is reversed

VLCT's yes came with a condition: everything built on the tree has to be documented well enough to undo. This is the register for the tree itself; every later change adds its own line to the report's work log.

WhatWhere the before-state livesHow to put it back
The 70-node treeCommitted in the migration repository as wp/mu-plugins/data/topics-tree.json, plus an export script that regenerates that file from the live site at any timeRun the seed script; it rewrites every node to match the committed file. Nodes added by hand afterwards are listed, not deleted.
The tags on the contentUntouched by the tree. The tree only groups them.Nothing to undo. Removing every node leaves all 89 tags and every item's tags exactly as migrated.
The prototype's old treeKept in the prototype repository's history; the synced version is on a preview branch, not on the live prototypeDo not merge the branch, or revert the one commit.
Node → page links (decision 3)Log file written by the seed script, one line per nodeRun the same script with revert; it clears only the links it wrote.
Filter, sidebar, menu and "All topics" pages that read the treeTheme code on named branches, each with a switchTurn the switch off (no deploy needed) or do not merge the branch.

What we asked for (answered above)

If we hear nothing before the next build, we go with the recommendation: the draft site's tree stands. Reply to Kalman by email, or comment on the linked issue.

Related: #32 (tree approval), #81 (tracking).

All decisions  ·  3 · Where editors link →