Skip to content

refactor(planning): rename architect skill to plan - #276

Merged
kyle-sexton merged 5 commits into
mainfrom
refactor/planning-architect-to-plan
Jul 17, 2026
Merged

refactor(planning): rename architect skill to plan#276
kyle-sexton merged 5 commits into
mainfrom
refactor/planning-architect-to-plan

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

What

Renames the planning:architect skill to planning:plan — one atomic breaking-change PR per the shadowed-skill-renames contract (docs/topics/shadowed-skill-renames/PLAN.md, PR #256):

  • git mv plugins/planning/skills/architect → plugins/planning/skills/plan; frontmatter name: plan matches the directory (per the plugins reference: a skills/<dir>/SKILL.md skill is named by its directory; the frontmatter name controls the invocation name — https://code.claude.com/docs/en/plugins-reference).
  • Repo-wide reference sweep: every /planning:architect, bare /architect, arbiter tag (arbiter: /architect), architect-readyplan-ready, architect-checklist.mdplan-checklist.md, pipeline-chain prose (interview → architect → implement), and the marketplace/plugin keyword tag architectplan. Cross-plugin references (implementation, testing, knowledge, claude-ops, session-flow, work-items, prototype, docs) ride in the same PR.
  • plugins/planning/plugin.json 0.12.00.13.0 (0.x breaking-by-minor precedent) + CHANGELOG entry explaining the shadow-compromise undo.
  • No renames-map entry (clean break per contract; the marketplace renames field is plugin-level only anyway — https://code.claude.com/docs/en/plugin-marketplaces).

Why breaking

Consumers invoking /planning:architect get skill-not-found and must switch to /planning:plan. Claude Code's built-in /plan (plan-mode toggle) is unaffected — plugin skills have no bare command form.

Deliberately unchanged

  • Historical CHANGELOG entries (planning, prototype) keep /planning:architect as written — past entries are records, not live references.
  • The architecture plugin and every /architecture:improve reference (different thing; substring guarded with word boundaries).
  • English-word uses of "architect": event-storming "architect's homework" (DDD role), extract-ssot's internal architect-plan phase name (verb), playbooks:boris code-architect.md (Boris's own agent file), rename-references teaching examples of stale chains, docs/CATALOG-TAXONOMY.md category gloss.
  • 'architect this' stays as a trigger phrase in the renamed skill's description.
  • Bare /architect self-references became /planning:plan (not bare /plan) — the contract itself notes bare /plan names the built-in plan-mode toggle and plugin skills have no bare command form, so the namespaced form is the only unambiguous spelling.

Verification

  • git grep -n "planning:architect" → hits only in CHANGELOG historical entries (kept intentionally).
  • git grep -nw -e "/architect" → zero hits repo-wide.
  • Remaining case-insensitive architect hits audited one-by-one — all in the deliberate-keep list above.
  • All touched JSON (marketplace.json, plugin.json, evals) validate with jq empty.
  • Frontmatter name: plan matches directory plugins/planning/skills/plan/.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C

Related

No linked issue — program-level rename executed under #280.

BREAKING CHANGE: /planning:architect is now /planning:plan. The
architect name was a pre-plugin shadow compromise; plugin namespacing
made the accurate name available, and per the shadowed-skill-renames
contract (docs/topics/shadowed-skill-renames/PLAN.md on PR #256) the
rename ships as a clean break: skill directory + frontmatter name move
together, every in-repo reference is updated atomically (cross-plugin
docs, evals, marketplace tag, arbiter tags, plan-ready phrasing), the
planning plugin bumps 0.12.0 -> 0.13.0 (0.x breaking-by-minor), and no
marketplace renames-map entry is added. Built-in /plan (plan-mode
toggle) is unaffected -- plugin skills have no bare command form.
Historical CHANGELOG entries keep the old name as written.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C
@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 4m 35s —— View job


PR Review: refactor(planning): rename architect skill to plan

Tasks

  • Gather context and understand the PR
  • Review changed files and diff
  • Check reference sweep completeness
  • Validate frontmatter consistency
  • Verify version bump and CHANGELOG
  • Check for any missed references or regressions
  • Post review findings

Summary

This is a focused, well-executed breaking-change PR. The reference sweep is complete and the deliberate preservations are correct. No blocking issues found.


What Was Verified

Directory rename and frontmatterskills/architect/ is renamed to skills/plan/ with frontmatter name: plan matching the directory, per the plugins-reference convention. ✅

Reference sweep completenessgit grep against the working tree finds zero remaining /planning:architect references outside CHANGELOG files. All in-PR changes from -/planning:architect to +/planning:plan are confirmed correct across all 44 files. ✅

Arbiter tagsarbiter: /architect (default deferred-question tag in interview/context/loop.md) is correctly updated to arbiter: /planning:plan. The namespaced form is the right choice here — the PR body correctly calls out that bare /plan names the built-in plan-mode toggle and is not valid for plugin skills. ✅

Trigger phrase preservation'architect this' remains in the renamed skill's description in plugins/planning/skills/plan/SKILL.md, exactly as stated in the PR. ✅

architect-readyplan-ready — The design-handoff skill description correctly reads "plan-ready summary" and plan-ready trigger phrase. ✅

Pipeline proseinterview → architect → implement chains updated to interview → /planning:plan throughout (wayfind, interview, prd, claude-ops, implementation skills). ✅

Marketplace and plugin manifest"architect" tag replaced with "plan" in both .claude-plugin/marketplace.json tags and plugins/planning/.claude-plugin/plugin.json keywords. ✅

Version bump0.12.00.13.0 consistent with the 0.x breaking-by-minor convention. CHANGELOG entry is well-written and informative. ✅

/architecture:improve untouched — The architecture plugin and all /architecture:improve references are correctly left alone. The -w word-boundary guard in the verification grep would not match architect inside architecture. ✅


Minor Observations (non-blocking)

1. Contract doc referenced but absent from this branch

The PR body cites docs/topics/shadowed-skill-renames/PLAN.md (PR #256) as the governing contract. That path does not exist in this branch — it appears to be a companion PR. Since the PR doesn't need that doc to be correct, this is informational only. If #256 is the prerequisite, it should either be merged first or linked explicitly in the PR description.

2. Branch is behind the current origin/main HEAD

origin/main is at 2cfadc3 (refactor(docs-hygiene): rename declutter skill to audit-noise, #272), which post-dates the base of this branch. The 44 changed files don't overlap with the docs-hygiene skill files from #272, so a squash merge should be clean — but the maintainer may want to verify there's no conflict before merging.


Verdict

Approve. The rename is atomic, complete, and correctly scoped. All verification claims in the PR description hold up under inspection. The two observations above are worth a glance but neither blocks merging.

kyle-sexton and others added 3 commits July 17, 2026 15:26
…hitect-to-plan

# Conflicts:
#	plugins/implementation/skills/implement-dispatch/SKILL.md
@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 2m 22s —— View job


Tasks

  • Gather context and understand the PR
  • Review new commits since last review
  • Check reference sweep completeness
  • Validate CHANGELOG format consistency
  • Verify version bumps for companion plugins
  • Check for any missed references or regressions
  • Post review findings

PR Review: refactor(planning): rename architect skill to plan — updated review

The two new commits (2710bad, c322864) land the companion plugin version bumps that were the only thing missing from the original review pass. Everything checks out.


What the New Commits Add

The original rename commit (8ae19a9) swept references in 7 companion plugins but did not bump their versions. These two commits complete that work:

Plugin Old version New version Commit
claude-ops 0.10.0 0.10.1 2710bad
implementation 0.6.1 0.6.2 2710bad
knowledge 0.6.0 0.6.1 2710bad + c322864
prototype 0.2.2 0.2.3 c322864
session-flow 0.7.0 0.7.1 c322864
testing 0.1.1 0.1.2 c322864
work-items 0.8.0 0.8.1 c322864

Bump level — all are patch bumps (reference-only change, non-breaking). Correct per semver. ✅

CHANGELOG format — each entry uses the pre-existing header convention for that plugin (## [0.x.y] vs ## 0.x.y). No format drift introduced. ✅

CHANGELOG copy — all 7 entries are identical: "References to the renamed /planning:plan skill (was /planning:architect, planning 0.13.0 breaking rename) retargeted. Version bumped so existing installs receive the rewritten prompts." — clear, accurate, and self-contained. ✅

Reference sweep completenessgrep -rn "planning:architect" plugins/ docs/ returns no hits outside CHANGELOG files. Zero stray references remain. ✅

Coverage check — every plugin whose skills were edited in 8ae19a9 (implementation, claude-ops, knowledge, prototype, session-flow, testing, work-items) received a bump. No companion was skipped. ✅


Verdict

Approve. The new commits are exactly what was needed to complete the PR. The rename is atomic, the companion bumps are clean, and the reference sweep is exhaustive. The prior review's approval stands — no new issues introduced.

@kyle-sexton
kyle-sexton enabled auto-merge (squash) July 17, 2026 19:51
…hitect-to-plan

# Conflicts:
#	plugins/planning/.claude-plugin/plugin.json
#	plugins/planning/CHANGELOG.md
#	plugins/planning/skills/interview/SKILL.md
@kyle-sexton
kyle-sexton merged commit c4cf53a into main Jul 17, 2026
19 checks passed
@kyle-sexton
kyle-sexton deleted the refactor/planning-architect-to-plan branch July 17, 2026 19:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 717122e17a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


### Changed

- **BREAKING: `/planning:architect` is renamed `/planning:plan`** (skill directory, frontmatter

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Put the rename notes under 0.14.0

This breaking rename is being added under the existing 0.13.0 heading even though the planning manifest was bumped to 0.14.0, so the changelog now says an already-released version introduced the /planning:architect removal. Consumers trying to identify which planning version broke the old invocation will get the wrong release, and the sibling changelog entries added in this commit also cite “planning 0.13.0”; please add a 0.14.0 section and update those references.

Useful? React with 👍 / 👎.

kyle-sexton added a commit that referenced this pull request Jul 17, 2026
…biquitous-language (#279)

Executes the domain-driven-design extraction slice of the
shadowed-skill-renames contract
(`docs/topics/shadowed-skill-renames/PLAN.md`, PR #256): a new
`domain-driven-design` plugin (0.1.0) housing
`/domain-driven-design:ubiquitous-language`, moved from
`/planning:domain-modeling`.

No linked issue

## Boundary rationale

- **DDD stewardship, not task-shaping.** The skill maintains the
consuming project's committed vocabulary record — canonical terms,
rejected synonyms, what-it-IS definitions, routing among already-known
bounded contexts — and explicitly refuses bounded-context discovery.
"domain-modeling" over-promised (it never models a domain); the concern
is a DDD practice discipline, not a planning-stage task shape, so it
moves out of `planning` into a plugin scoped to DDD practices. Deferred
residents (`context-mapping`, `aggregate-design`) join when they
materialize; the new plugin's README records that trigger.
- **`event-storming` stays standalone.** Per eventstorming.com's own
positioning, EventStorming is multi-purpose (business-flow analysis,
service design, software architecture — DDD is one application), so it
is not folded into the DDD plugin. The moved skill's soft routing to the
EventStorming capability is unchanged, and event-storming's references
to the glossary steward remain soft "when available" routes.

## Dependency (fresh-docs cited)

- `planning` (0.12.0 → **0.13.0**, breaking for
`/planning:domain-modeling` invokers) declares `"dependencies":
["domain-driven-design"]` in `plugin.json`. Per the current official
docs, a dependencies entry "can be a bare string with only the plugin
name … which depends on whatever version that plugin's marketplace
provides", the name "resolves within the same marketplace as the
declaring plugin", and "when you install a plugin that declares
dependencies, Claude Code resolves and installs them automatically" —
https://code.claude.com/docs/en/plugin-dependencies (fetched this
session).
- The `dependencies` array is part of the plugin manifest schema ("Other
plugins this plugin requires, optionally with semver version
constraints") — https://code.claude.com/docs/en/plugins-reference
(fetched this session).
- Because `planning` declares the dependency, its `interview`/`design`
inline invocations of `/domain-driven-design:ubiquitous-language` are
legal cross-plugin references under the contract's rule
(required-for-contract → declared dependency). `architecture` and
`event-storming` keep soft "when available" references with graceful
degradation, so they need no dependency.

## Change set

- New `plugins/domain-driven-design/`: manifest (0.1.0), README,
CHANGELOG; skill moved via `git mv` with frontmatter `name:
ubiquitous-language` (description keeps the domain-modeling / glossary /
ubiquitous-language / define-this-domain-term triggers); the skill's
`context/` and `evals/` moved with it — it has no
`${CLAUDE_PLUGIN_ROOT}` references, only skill-relative links, so
nothing re-roots.
- `marketplace.json`: new `domain-driven-design` entry (category
`design`); planning's `domain-modeling`/`ubiquitous-language`/`glossary`
tags moved to it. **No `renames`-map entries** (contract constraint).
- `planning` 0.13.0: dependency declared, keywords trimmed,
README/description updated, CHANGELOG marks the breaking move.
- Repo-wide sweep: every live `/planning:domain-modeling` reference
retargeted (planning `interview` + `design` bodies and evals,
`architecture:improve`, event-storming methodology/simulation references
and evals). Historical CHANGELOG entries left untouched; `git grep
planning:domain-modeling` now hits only CHANGELOGs.
- README catalog regenerated via `scripts/generate-catalog.mjs`;
`validate-plugin-contracts.mjs`, `validate-plugins.sh`, and markdownlint
pass locally.

## Rebase note

PR #276 (architect→plan) also bumps `planning` and edits its CHANGELOG
plus the `interview`/`design` skill bodies. This PR deliberately does
**not** include any of #276's changes; whichever merges second takes a
rebase (version + CHANGELOG adjacency, possible body-line context
conflicts in `interview`/`design`).

## Related

- PR #256 — codifies the naming grammar and carries the execution
contract this PR implements.
- PR #276 — `planning:architect` → `planning:plan` rename (overlapping
`planning` bump; see rebase note).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@claude

claude Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kyle-sexton's task in 3m 35s —— View job


Tasks

  • Gather context and understand the PR
  • Investigate the Codex inline review comment (CHANGELOG version mismatch claim)
  • Read plugins/planning/CHANGELOG.md and plugins/planning/.claude-plugin/plugin.json
  • Assess validity of the Codex finding
  • Post findings

Re-review: Codex inline comment validation

The Codex inline comment on plugins/planning/CHANGELOG.md:10 is confirmed correct. This was a real issue that both prior review passes missed.


What went wrong

The merge sequence that created the mismatch:

  1. PR feat(planning): interview asks in frontier rounds (0.13.0) #278 (feat(planning): interview asks in frontier rounds) was merged to main as planning@0.13.0, creating a ## [0.13.0] CHANGELOG section for the frontier-rounds feature.
  2. This PR (refactor(planning): rename architect skill to plan #276) was already in flight targeting 0.13.0 for the architect→plan rename. When it synced origin/main (picking up PR feat(planning): interview asks in frontier rounds (0.13.0) #278), the version bump in plugin.json was correctly incremented to 0.14.0 — but the CHANGELOG section header ## [0.13.0] for the rename was never updated to ## [0.14.0].

Verified at the PR's HEAD SHA 717122e17a:

File Actual state What it should have been
plugins/planning/.claude-plugin/plugin.json "version": "0.14.0" 0.14.0
plugins/planning/CHANGELOG.md rename under ## [0.13.0] rename under ## [0.14.0]
7 companion plugin CHANGELOGs "planning 0.13.0 breaking rename" "planning 0.14.0 breaking rename"

The PR description also stated 0.12.0 → 0.13.0 which was wrong; the actual bump in the PR was 0.13.0 → 0.14.0.


Consumer impact

  • A consumer checking plugin.json sees version 0.14.0 and opens the CHANGELOG to understand the breaking change — no [0.14.0] entry exists.
  • The [0.13.0] entry conflates two unrelated releases: the frontier-rounds behavioral change (PR feat(planning): interview asks in frontier rounds (0.13.0) #278) and the architect→plan breaking rename (this PR). A consumer pinned to 0.13.0 before the frontier-rounds change would see an incorrect CHANGELOG when they upgrade.
  • Seven companion plugins cite "planning 0.13.0 breaking rename" — a version that shipped as the interview-frontier release, not the rename release.

What a follow-up fix needs

The CHANGELOG has since been further modified by PR #279 (domain-modeling extraction, also folded into [0.13.0] in the current main). A clean fix needs to split the current [0.13.0] block into separate properly-versioned entries and retarget the companion plugin cites. This is a follow-up CHANGELOG-only PR with no functional changes — safe to land at any time since the plugin registry cares about plugin.json version, not CHANGELOG entries.

Permalink to the mismatch in the merged commit: plugins/planning/CHANGELOG.md#L6

kyle-sexton added a commit that referenced this pull request Jul 17, 2026
…n (0.18.0) (#294)

## Summary

Propagates the frontier-rounds questioning cadence (introduced for
`/planning:interview` in 0.13.0, PR #278) to the sibling planning skills
that still carried the abandoned one-question-at-a-time cadence:

- **`/planning:plan`** (formerly `architect`, renamed in 0.14.0) — the
Step 4.6 confidence-gate routing and `context/tag-decisions.md` both
described "an interview round (one question at a time, recommendation +
basis)". The description now lives once in `tag-decisions.md` (stated as
a numbered set of settled-prerequisite questions); the SKILL.md summary
no longer duplicates the parenthetical. The scope-clarity check ("prose,
one question at a time") now asks open questions as one numbered round.
- **`/planning:prd`** — Step 4 renamed to "Drive frontier-rounds Q&A";
"never batch unrelated questions" replaced with rounds grouped by PRD
section, dependent questions waiting on their prerequisites.
- **`/planning:design`** — the "Collaborative always" behavior asks in
frontier rounds over design threads (their dependency tracking already
is a frontier graph); two `evals.json` assertions updated to match.
- **Left as is:** `/planning:brainstorm`'s single intake question — one
question is genuinely correct there, and a frontier of one degenerates
anyway.

All three siblings now render a round via `AskUserQuestion` only through
the same `use_ask_user_question` user config the interview skill reads
(opt-in, and only for ≤4 independent questions) instead of re-deciding
prose-vs-card inline.

Planning plugin bumped 0.15.0 → 0.16.0. Rebased over the #276 rename
(git followed the `architect/` → `plan/` move) and the #279
domain-modeling extraction. Along the way this PR also repairs two
artifacts of those merges:

- CHANGELOG: the 0.14.0 (rename) and 0.15.0 (domain-modeling move)
entries are filed under their own version headings — both had been
folded into the 0.13.0 section while the manifest version advanced past
them.
- `plugin.json`: the DDD merge had landed the updated plugin description
inside `userConfig.use_ask_user_question` (overwriting that entry's
prompt text) and left the stale pre-DDD description at top level; both
fields are restored (the userConfig prompt now names all four
round-asking skills).

## Related

Closes #282. Follow-up to #278 (interview frontier-rounds rewrite);
staged behind it and unblocked by its merge.

## Verification

- Residue grep across `plugins/planning` for `one question at a time` /
`one-question` / `one at a time` / `never batch`: only remaining match
is the interview eval's legitimate dependency-rule text ("never batches
a question into the same round as a question it depends on")
- `jq empty` on `design/evals/evals.json` and `plugin.json`
- `claude plugin validate plugins/planning` ✔
- `markdownlint-cli2` on all touched markdown: 0 errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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