Skip to content

feat(gilbreth): add /wbs-migrate for the canonical-type migration#56

Merged
germanamz merged 1 commit into
mainfrom
feat/gilbreth-phase3
May 24, 2026
Merged

feat(gilbreth): add /wbs-migrate for the canonical-type migration#56
germanamz merged 1 commit into
mainfrom
feat/gilbreth-phase3

Conversation

@germanamz

Copy link
Copy Markdown
Owner

Summary

The command is additive — it doesn't change any existing behavior. Hence feat(gilbreth): (not !-breaking).

The procedure: rewrite type: wbs-node/wbs-note and the eight wbs-* edge keys (forward + inverse) across wbs/**/*.md, then swap the pack section in tusk.toml (tusk pack add core --force → strip legacy blocks → tusk pack add wbs.toml so a failed core-add leaves a recoverable state), then tusk reindex. Idempotent: re-running on a migrated workspace is a no-op.

Recoverability: every change is to git-tracked markdown / tusk.toml, so git restore is always the rollback path. The command's pre-flight refuses to run on a dirty tree to keep that promise honest.

Verified manually in a scratch workspace seeded with old-shape nodes + the pre-#54 wbs pack: tusk doctor clean post-migration, tusk query 'type:node' returns the migrated nodes, edges intact, second run is a no-op.

Test plan

  • lint-commits passes (Conventional Commits, scope gilbreth).
  • lint-pr-title passes.
  • In a workspace still on the old wbs-* pack, running /wbs-migrate produces a clean tusk doctor, migrated frontmatter, and migrated edges.
  • Re-running /wbs-migrate on an already-migrated workspace is a no-op.

Ships a one-shot, idempotent migration helper for workspaces bootstrapped
on the pre-`core` shape (wbs-node/wbs-note types and wbs-* edges). The
command rewrites frontmatter under wbs/**/*.md (type: wbs-node -> node,
type: wbs-note -> note, eight legacy edge keys to their unprefixed canonical
names), strips the legacy pack blocks from tusk.toml, installs Elephant's
core pack + gilbreth's workflow-only wbs.toml via `tusk pack add --force`,
and reindexes. Detection logic short-circuits on already-migrated
workspaces so re-runs are a clean no-op.

Pointer added to templates/wbs/conventions.md so consumers find the helper.
@germanamz germanamz merged commit 27c5658 into main May 24, 2026
2 checks passed
@germanamz germanamz deleted the feat/gilbreth-phase3 branch May 24, 2026 00:51
germanamz added a commit that referenced this pull request May 24, 2026
* chore(gilbreth): mark Elephant initiative and descendants complete

Final status bump for the Elephant initiative, the gilbreth-refactor
story, and the gilbreth-wbs project node. Shipped as a discrete commit
ahead of the WBS tracking-tree retirement, per `conventions.md`'s
"Retiring a completed project" procedure.

* chore(gilbreth): retire completed Elephant WBS tracking tree

The Elephant initiative shipped across PRs #45-49, #51-54, and #56 —
all five stories (knowledge pack, conventions skill, capture skill,
recall skill, gilbreth refactor) plus the Phase-3 /wbs-migrate helper.
Initiative + descendants are all `status=completed`.

Per `plugins/gilbreth/templates/wbs/conventions.md` "Retiring a
completed project": once tracking files stop being coordination tools,
they become noise for future agents querying the graph. This commit
removes `wbs/gilbreth-wbs/` + `wbs/gilbreth-wbs.md` and moves the
roadmap row to Done.

Recoverable: every retired file is in git history (parent commit
`3f5b9a0`). Spec/plan/brainstorm/reshape-audit notes are not lost,
just no longer in the live graph.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant