feat(gilbreth): add /wbs-migrate for the canonical-type migration#56
Merged
Conversation
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.
3 tasks
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.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/wbs-migrate, a slash command that performs the one-time migration of an existing Gilbreth WBS workspace from the legacywbs-*-prefixed Tusk types/edges to Elephant's canonicalcorepack (introduced in feat(elephant)!: canonical core type pack #53) consumed by gilbreth (feat(gilbreth)!: consume elephant core pack and defer conventions #54).templates/wbs/conventions.md.The command is additive — it doesn't change any existing behavior. Hence
feat(gilbreth):(not!-breaking).The procedure: rewrite
type: wbs-node/wbs-noteand the eightwbs-*edge keys (forward + inverse) acrosswbs/**/*.md, then swap the pack section intusk.toml(tusk pack add core --force→ strip legacy blocks →tusk pack add wbs.tomlso a failed core-add leaves a recoverable state), thentusk reindex. Idempotent: re-running on a migrated workspace is a no-op.Recoverability: every change is to git-tracked markdown /
tusk.toml, sogit restoreis 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 doctorclean post-migration,tusk query 'type:node'returns the migrated nodes, edges intact, second run is a no-op.Test plan
lint-commitspasses (Conventional Commits, scopegilbreth).lint-pr-titlepasses.wbs-*pack, running/wbs-migrateproduces a cleantusk doctor, migrated frontmatter, and migrated edges./wbs-migrateon an already-migrated workspace is a no-op.