refactor(planning): rename architect skill to plan - #276
Conversation
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 finished @kyle-sexton's task in 4m 35s —— View job PR Review:
|
…hitect-to-plan # Conflicts: # plugins/implementation/skills/implement-dispatch/SKILL.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C
|
Claude finished @kyle-sexton's task in 2m 22s —— View job Tasks
PR Review:
|
| 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 completeness — grep -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.
…hitect-to-plan # Conflicts: # plugins/planning/.claude-plugin/plugin.json # plugins/planning/CHANGELOG.md # plugins/planning/skills/interview/SKILL.md
There was a problem hiding this comment.
💡 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 |
There was a problem hiding this comment.
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 👍 / 👎.
…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 finished @kyle-sexton's task in 3m 35s —— View job Tasks
Re-review: Codex inline comment validationThe Codex inline comment on What went wrongThe merge sequence that created the mismatch:
Verified at the PR's HEAD SHA
The PR description also stated Consumer impact
What a follow-up fix needsThe CHANGELOG has since been further modified by PR #279 (domain-modeling extraction, also folded into Permalink to the mismatch in the merged commit: |
…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>
What
Renames the
planning:architectskill toplanning: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; frontmattername: planmatches the directory (per the plugins reference: askills/<dir>/SKILL.mdskill is named by its directory; the frontmatternamecontrols the invocation name — https://code.claude.com/docs/en/plugins-reference)./planning:architect, bare/architect, arbiter tag (arbiter: /architect),architect-ready→plan-ready,architect-checklist.md→plan-checklist.md, pipeline-chain prose (interview → architect → implement), and the marketplace/plugin keyword tagarchitect→plan. Cross-plugin references (implementation, testing, knowledge, claude-ops, session-flow, work-items, prototype, docs) ride in the same PR.plugins/planning/plugin.json0.12.0→0.13.0(0.x breaking-by-minor precedent) + CHANGELOG entry explaining the shadow-compromise undo.renames-map entry (clean break per contract; the marketplacerenamesfield is plugin-level only anyway — https://code.claude.com/docs/en/plugin-marketplaces).Why breaking
Consumers invoking
/planning:architectget 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
/planning:architectas written — past entries are records, not live references.architectureplugin and every/architecture:improvereference (different thing; substring guarded with word boundaries).extract-ssot's internalarchitect-planphase name (verb),playbooks:boriscode-architect.md(Boris's own agent file),rename-referencesteaching examples of stale chains,docs/CATALOG-TAXONOMY.mdcategory gloss.'architect this'stays as a trigger phrase in the renamed skill's description./architectself-references became/planning:plan(not bare/plan) — the contract itself notes bare/plannames 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.architecthits audited one-by-one — all in the deliberate-keep list above.marketplace.json,plugin.json, evals) validate withjq empty.name: planmatches directoryplugins/planning/skills/plan/.🤖 Generated with Claude Code
https://claude.ai/code/session_01YVApnNGoKxYMJKNQx1QK8C
Related
No linked issue — program-level rename executed under #280.