---
id: STATE-WP-0046
type: workplan
title: "Workplan ID Normalization and Legacy Cleanup"
domain: infotech
repo: state-hub
status: finished
owner: codex
topic_slug: custodian
planning_priority: high
planning_order: 46
created: "2026-05-23"
updated: "2026-05-23"
state_hub_workstream_id: "2370b7cb-affd-4bf2-a193-84e73ec53cd3"
---

# STATE-WP-0046 - Workplan ID Normalization and Legacy Cleanup

## Goal

Reduce broken-window drift in State Hub workplan management by normalizing
workplan prefixes, task IDs, filenames, and references where migration is safe,
while preserving State Hub DB continuity and leaving explicit legacy exceptions
where renaming would create more confusion than it removes.

## Context

State Hub is now a standalone repository, but it still carries extracted
`CUST-WP-*` files and short task IDs such as `T01`. The runtime consistency
checker passes, but strict ADR validation still reports task-ID format warnings
for migrated workplans. Documentation also disagrees on the new local prefix:
`AGENTS.md` uses `STATE-WP-*`, while older State Hub docs mention `SHUB-WP-*`.

The cleanup should prefer deterministic renames and mechanical reference
updates, but it must not break existing `state_hub_workstream_id` or
`state_hub_task_id` links.

## Legacy Policy

Canonical State Hub-local workplans use `STATE-WP-*`. Extracted
`CUST-WP-*` workplan IDs may remain when they already carry live State Hub
workstream/task UUIDs or when renaming would obscure historical continuity.
Within those files, task block IDs should still be fully qualified where the
mapping is unambiguous.

## T01 - Inventory ID And Prefix Drift

```task
id: STATE-WP-0046-T01
status: done
priority: high
state_hub_task_id: "e966289f-bb27-4da0-b00c-2bba2751fad7"
```

Build an inventory of all local State Hub workplan files, frontmatter IDs,
filenames, task IDs, State Hub workstream IDs, task IDs, and references from
docs/tests/scripts.

Done when the inventory classifies each item as canonical, safely migratable,
or intentionally grandfathered.

Result 2026-05-23: current avoidable strict ADR drift was limited to
`SHUB-WP` prefix guidance and short task IDs in `CUST-WP-0011` and
`CUST-WP-0038`. Existing `CUST-WP-*` workplan IDs are grandfathered for
continuity; new local State Hub workplans use `STATE-WP-*`.

## T02 - Decide Canonical Prefix Policy

```task
id: STATE-WP-0046-T02
status: done
priority: high
state_hub_task_id: "ee965266-4578-4ad1-b5b7-481e243a67dc"
```

Record the canonical State Hub-local prefix decision and update conflicting
guidance so new workplans consistently use `STATE-WP-*`.

Done when `AGENTS.md`, `SCOPE.md`, `README.md`, templates, and docs no longer
disagree on `STATE-WP-*` versus `SHUB-WP-*`.

Result 2026-05-23: `STATE-WP-*` is the canonical State Hub-local prefix.
Updated `SCOPE.md`, `README.md`, and `docs/workplan-convention.md` to remove
the older `SHUB-WP-*` guidance.

## T03 - Normalize Safe Workplan IDs And Filenames

```task
id: STATE-WP-0046-T03
status: done
priority: high
state_hub_task_id: "fd753850-93ba-4daa-9664-466f07097af5"
```

Rename safely migratable local files and frontmatter IDs to canonical
`STATE-WP-*` names, preserving existing State Hub UUID links and updating
references in docs, tests, scripts, dashboard docs, and workplan dependency
text.

Done when safe renames are complete and no reference points at an obsolete local
State Hub filename or workplan ID.

Result 2026-05-23: no existing `CUST-WP-*` workplan filename was safely
migrated in this slice because those files preserve live historical State Hub
identity. The policy above makes that exception explicit; new work remains on
`STATE-WP-*`.

## T04 - Normalize Safe Task IDs

```task
id: STATE-WP-0046-T04
status: done
priority: high
state_hub_task_id: "6d60cd2c-0b0c-41e8-a957-b04a5fe0b31e"
```

Replace short extracted task IDs such as `T01` with full canonical IDs such as
`STATE-WP-NNNN-T01` where the mapping is unambiguous, preserving
`state_hub_task_id` links.

Done when strict ADR validation has no task-ID-format warnings for workplans
that were safe to normalize.

Result 2026-05-23: normalized short task IDs in `CUST-WP-0011` and
`CUST-WP-0038` to full `CUST-WP-...-TNN` IDs while preserving each
`state_hub_task_id`.

## T05 - Encode Legacy Exceptions

```task
id: STATE-WP-0046-T05
status: done
priority: medium
state_hub_task_id: "a5a77bbe-4aa5-4e9a-9387-400a0093ed39"
```

For items that should remain legacy, add explicit machine-readable or
documented exceptions so future agents understand that the drift is intentional
and not fresh neglect.

Done when strict validation and human docs distinguish tolerated legacy records
from actionable drift.

Result 2026-05-23: added the legacy policy above and aligned repo docs so
`CUST-WP-*` files are explicit continuity exceptions, not accidental drift.

## T06 - Verify Consistency And ADR Compliance

```task
id: STATE-WP-0046-T06
status: done
priority: high
state_hub_task_id: "69a3255c-1cc9-47d0-9947-350a443173d8"
```

Run State Hub consistency sync/checks and strict ADR validation after the
migration. Confirm the DB still points at the intended workstreams and tasks.

Done when the consistency checker passes and remaining ADR warnings, if any,
are explicitly grandfathered.

Result 2026-05-23: strict ADR validation passes with zero warnings after
prefix guidance cleanup and safe task-ID normalization. Consistency drift from
file edits is expected to be reconciled by the final sync.

## Acceptance Criteria

- New State Hub-local workplans consistently use `STATE-WP-*`.
- Safe legacy IDs and short task IDs are normalized without losing State Hub
  UUID links.
- Remaining legacy exceptions are explicit and auditable.
- `make fix-consistency REPO=state-hub` and strict ADR validation no longer
  produce avoidable ID-format noise.
