Files
msd-core/docs/ja-JP/how-to/update-gsd.md
Tom Boucher cf15682d1c enhance(#3028): responsive Markdown separators instead of fixed-width rules (#3789)
* feat(#3028): responsive Markdown separators instead of fixed-width rules

Stage banners, checkpoints, completion and error panels used fixed-width
runs of box-drawing characters -- a 53-column heavy rule and a 62-column
double-line box. Those runs are ordinary text to a Markdown-rendering
host, so in a narrower pane they wrap and the border comes apart from
the heading it framed.

Shipped content now emits an ATX heading for a titled section and a
blank-line-delimited --- for a break between sections, both of which
adapt to the available width. The same convention is applied to the
three code sites that built these strings at runtime: the UAT
checkpoint renderer, the milestone-close audit report, and the TDD
review checkpoint table.

Removing the box also removes its only reason to exist -- the
east-asian-width padding helpers that kept its right border aligned
(checkpointBoxLine, displayWidth, isWideCodePoint, ZERO_WIDTH_MARK_RE,
CHECKPOINT_BOX_WIDTH). RTL directional isolation is unchanged.

The convention is specified in gsd-core/references/ui-brand.md and
enforced across all shipped content by tests/responsive-separators.test.cjs.

Refs #3028

* test(#3028): pin the heading form in checkpoint and audit-report assertions

These suites asserted the exact box borders and the 62-column padded
banner interior. With the box gone they assert the ### heading form,
the --- break and the bolded instruction line, and each now carries a
positive assertion that no box character remains -- which is what pins
the fix rather than merely tolerating it.

Language coverage is converted, not dropped: Japanese, Chinese, Korean,
Hindi and Arabic all still assert their rendered banner, and the Arabic
case still asserts the RTL directional isolates the box removal must
not disturb. Adds a case for a banner longer than the old inner width,
which previously produced a ragged border and now has none.

Refs #3028

* chore(#3028): acknowledge execute-plan.md growth from the checkpoint display spec

The checkpoint_protocol display spec described the drawn box; it now
describes the heading, the --- break and the bolded action prompt,
which costs 22 bytes (40111 -> 40133, 827 under the cap).

Appended to the existing #3370 fragment rather than filed as a new one:
a growth ack keys on the bare filename and #3370 already declares
execute-plan.md, so a second source naming it would be a hard
duplicate-key error. Same supersede-by-append route #3370 took for the
spent #2652 fragment.

Refs #3028

* docs(#3028): state the load-bearing half of the separator rule, and amend the zh-CN reference

Review found three things.

The rule as first written demanded a blank line above AND below every
---. Only the one above is load-bearing: it is what stops CommonMark
reading the rule as a setext underline for the line above. The one below
is cosmetic, because a thematic break is a leaf block. The rule now says
that, with the reason, instead of asserting a stricter form the content
does not keep.

The zh-CN reference had received the mechanical box-to-heading swap but
none of the prose behind it: it still claimed a 62-character checkpoint
width and still listed --- among forbidden mixed banner styles, so it
contradicted the convention it was translating. It now carries the
separator section, the setext reasoning, the unconditional-vs-per-runtime
rationale and a corrected anti-pattern list, in Chinese.

The user guide asserted that a heading is not a degradation anywhere.
That is an assertion, not a demonstration. It now says what was actually
traded away in a plain terminal, points at the recorded rationale, and
invites the report that would justify the capability flag instead.

Refs #3028

* chore(#3028): backfill changeset PR number

Refs #3028

---------

Co-authored-by: sim <sim@local>
2026-08-23 22:38:12 -04:00

6.3 KiB
Raw Blame History

GSD Core をアップデートする方法

既存の GSD Core インストールを最新リリースに更新し、コミット前に変更履歴をプレビューし、アップデートによって上書きされるローカルカスタマイズを回復します。

必要なもの: GSD がインストールされているのと同じランタイム。アップデートコマンドは内部でインストーラを再実行するため、Node.js と npx が利用可能である必要があります(元のインストールと同じ要件)。


標準的なアップデート手順

AI ランタイム内から以下を実行します。

/gsd-update

GSD は以下を実行します。

  1. インストール済みバージョンとインストールスコープ(グローバルまたはローカル)を検出する。
  2. @opengsd/gsd-core の最新リリースを npm で確認する。
  3. 変更履歴を取得し、インストール済みバージョンと最新バージョンの差分を表示する。
  4. 何も触れる前に確認を求める。
  5. GSD 管理ディレクトリ内に見つかったユーザーが追加したファイルを gsd-user-files-backup/ にバックアップする。
  6. インストーラを実行する(npx @opengsd/gsd-core@latest --<runtime> --<scope>)。
  7. アップデートチェックキャッシュをクリアしてステータスラインのインジケーターをリセットする。
  8. ローカルで変更された GSD ファイルが gsd-local-patches/ にバックアップされたかどうかを報告する。

アップデート後にランタイムを再起動して、新しいコマンドとエージェントを読み込んでください。


フラグ

フラグ 動作
--sync アップデート後に GSD レジストリからスキルを同期する
--reapply アップデート後に gsd-local-patches/ からローカルで変更された GSD ファイルをマージして戻す
/gsd-update --sync        # アップデートしてスキルを同期する
/gsd-update --reapply     # アップデートしてローカルパッチを再適用する

アップデート前に変更履歴を確認する

/gsd-update は確認を求める前に、インストール済みバージョンと最新バージョン間の変更履歴差分を常に表示します。GitHub を別途確認する必要はありません。出力は以下のようになります。

## GSD Update Available

Installed: 1.39.0
Latest:    1.41.0

### What's New

---

[changelog entries for 1.40.0 and 1.41.0]

---

Proceed with update? [Yes, update now / No, cancel]

変更履歴を取得できない場合(ネットワークアクセスなし、npm の障害)、アップデートは確認後も続行されます。変更履歴の利用可能性でブロックされることはありません。


ローカルカスタマイズの回復

GSD 管理ディレクトリ内に追加したファイル

GSD が所有するディレクトリ内にカスタムファイルを配置した場合(例:gsd- プレフィックスのカスタムエージェント、commands/gsd/ への追加ファイル)、インストーラはそれらを検出し、ディレクトリを削除する前に gsd-user-files-backup/ にコピーします。アップデート後、そのバックアップ場所から手動で復元してください。

GSD 管理ディレクトリの外に配置したファイル(gsd- プレフィックスのないカスタムエージェント、commands/gsd/ 外のカスタムコマンド、CLAUDE.md ファイル、カスタムフック)はインストーラによって一切変更されません。

GSD がインストールしたファイルへの直接変更

GSD がインストールしたファイルを編集した場合(例:エージェントのシステムプロンプトの調整)、インストーラはマニフェストのハッシュ比較で変更を検出し、ファイルを gsd-local-patches/ にバックアップしてから新しいバージョンで置き換えます。アップデート後:

/gsd-update --reapply

これにより、新しくインストールされたファイルに gsd-local-patches/ からの変更がマージして戻されます。

以前のアップデート後に --reapply をスキップしてパッチを今すぐ適用したい場合:

/gsd-update --reapply

--reapply は新しいダウンロードをトリガーせずに単独で実行しても安全です。すでに最新バージョンであれば、GSD はインストールステップをスキップして直接パッチの再適用に進みます。


npm が利用できない場合

ネットワーク制限、npm の障害、またはソースリポジトリから作業しているため npx @opengsd/gsd-core@latest が失敗する場合は、docs/manual-update.md の手動アップデート手順を使用してください。そのドキュメントには、最新コミットの取得、フックの dist のビルド、node bin/install.js の直接実行が記載されています。


すでに最新バージョンの場合

/gsd-update は確認メッセージとともに早期終了します。ダウンロード、インストール、再起動は不要です。


インストーラの移行

各 GSD リリースには、管理ファイルの名前変更、移動、廃止を行うインストーラ移行が含まれる場合があります。移行レイヤーは新しいパッケージペイロードが書き込まれる前に自動的に実行されます。変更したファイルに影響する移行はサイレントに実行されず、確認が求められます。設計の詳細とランタイム設定コントラクトレジストリについては、docs/installer-migrations.md を参照してください。