mcpField
D
docs-applies-to-tagging

docs-applies-to-tagging

github.com/elasticドキュメント72150 回インストール2 日前に更新
リポジトリ

docs-applies-to-tagging について

Elastic ドキュメント向けに `applies_to` タグを検証・生成するスキルです。累積型ドキュメントのルールに基づき、バージョン別の既存記述を残すかどうかも判断します。

主な機能

  1. 01既存の `applies_to` タグを検証
  2. 02変更内容からタグを生成
  3. 03累積型ドキュメントのルールを適用
  4. 04ページ・セクション・インライン構文に対応

活用シーン

  1. 01ドキュメントファイルのタグを確認
  2. 02新機能のタグを作成
  3. 03旧バージョンの記述を残すか判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/elastic/elastic-docs-skills --skill docs-applies-to-tagging

インストール後、Claude Code で/docs-applies-to-taggingを入力して読み込まれたか確認します。

同梱ファイルevals/evals.json

詳細

Elastic ドキュメントの applies_to タグ付けスペシャリストです。既存の applies_to タグを検証し、新規または更新されたコンテンツに適切なタグを生成します。また、バージョンを指定したコンテンツを新しいコンテンツに置き換えずに併存させるべきかを判断する、累積ドキュメントのルールを適用します。

モード

入力に応じて、このスキルは次の 2 つのモードで動作します。

  • 検証 — 入力はファイルパス、ディレクトリ、または貼り付けられたフロントマター/Markdown です。既存の applies_to タグをルールと照合して確認し、問題を報告します。報告のみ:入力でタグの修正、適用、または訂正が明示的に求められていない限り、ファイルを編集しないでください。 パスだけが指定された場合は、検証の依頼です。タスクの実行フローに従ってください。
  • 意図から生成 — 入力は、既存ファイルを含まない変更の構造化された説明(機能、バージョン、ライフサイクル、ディメンション、製品)です。累積ドキュメントのルールを考慮し、新規または変更されたページに適用すべき正規の applies_to 構文を生成します。意図から生成する場合の実行フローに従ってください。

ユーザーがファイルや貼り付けたページ内容ではなく、変更について説明している場合は、意図から生成するモードを検出してください。例:

  • 「Stack のみで 9.5 に機能 X を追加します。applies_to を生成してください。」
  • 「Observability の Serverless 限定 GA 機能には、どのタグが適切ですか?」
  • 「機能が 9.4 のプレビューから 9.5 の GA になりました。何と記述すればよいですか?」
  • 「Stack でプレビューとなり、Elastic Cloud Hosted で利用可能な新しい kibana.yml 設定には、どの applies_to マップが適切ですか?」
  • ファイル内容を示さず、意図を説明して適切なタグを尋ねるプロンプト全般。

バージョンを指定した既存のコンテンツを保持するか置き換えるかについて質問されている場合(累積ドキュメントに関する質問)は、モードにかかわらず、以下の累積ドキュメントのルールを適用してください。

applies_to とは

累積ドキュメントでは、applies_to タグを使用して、ページまたはセクションが対象とする Elastic の製品、デプロイタイプ、バージョンを示します。公開ドキュメントでは、タグはバッジとして表示されます。

構文

形式:<key>: <lifecycle> <version>

レベル

ページレベル(YAML フロントマター — すべてのページで必須):

---
applies_to:
  stack: ga
  serverless: ga
---

セクションレベル(見出しの後に記述 — その見出しから同じレベルまたは上位レベルの次の見出しまでのすべてに適用されます)。見出しの直下の行に配置し、見出しとブロックの間に空行を入れないでください:

## Section heading
```{applies_to}
stack: ga 9.1+
serverless: unavailable
```

エディターで YAML 構文のハイライトを有効にするため、yaml {applies_to} の形式もサポートされています:

```yaml {applies_to}
stack: ga 9.1+
serverless: unavailable
```

インライン(段落の途中には置かないでください — 段落の先頭、リスト項目の先頭、定義語の末尾、または表のセル内にのみ配置できます):

{applies_to}`stack: ga 9.1+` This sentence applies from 9.1 onward.
- {applies_to}`serverless: ga` This item applies to all serverless projects.
- {applies_to}`stack: ga 9.1+` This item applies from Stack 9.1 onward.

技術プレビューであることを示す省略形として、専用の {preview} ロールもあります。引数としてバージョンを指定します:

Feature name {preview}`9.1`
:   Definition body

アドモニション(:applies_to: ディレクティブオプションを使用):

:::{note}
:applies_to: stack: ga 9.1+
This note applies only to Stack 9.1+.
:::

ドロップダウン(:applies_to: ディレクティブオプションを使用):

:::{dropdown} Dropdown title
:applies_to: stack: ga 9.0+
Dropdown content here.
:::

アドモニションとドロップダウンでは、複数のキーを指定する場合、オブジェクト形式または JSON も使用できます。例::applies_to: {"stack": "ga 9.2+", "serverless": "ga"}。

キー

ページレベルでは、1 つのディメンションのみを使用してください。

ディメンションキー
Stack/Serverlessstack、serverless(サブキー:security、elasticsearch、observability、vectordb)
デプロイメントdeployment(サブキー:ech、ece、eck、self)、serverless
製品product(APM エージェント、EDOT SDK、ツール — キーの完全なリファレンスを参照)

Elastic Cloud Hosted には ech を使用してください。ess は非推奨の別名であり、新しいタグでは生成しないでください。既存のコンテンツで ess が使用されている場合は、非推奨であることを指摘し、ローカルのビルド上の制約により古いキーを維持する必要がある場合を除き、ech を提案してください。

ライフサイクルの状態

experimental、preview、beta、ga、deprecated、removed、unavailable

バージョン形式(バージョン管理されている製品のみ)
種類構文例バッジ
以上x.x+(推奨)、または x.x、x.x.x+、x.x.xga 9.1+9.1+
範囲(両端を含む)x.x-y.y または x.x.x-y.y.ypreview 9.0-9.29.0-9.2
完全一致=x.x または =x.x.xbeta =9.19.1

バージョン管理されていない製品(サーバーレス)では、ライフサイクルのみを使用します:serverless: ga。

新しいタグを作成するときは、バージョンの意図を明確にしてください:

  • デフォルトではマイナーバージョンでタグ付けします。 機能がパッチリリース(例:9.4.2)で提供される場合でも、マイナーバージョンでタグ付けします:stack: ga 9.4。stack: ga 9.4.2とはしません。バッジには常にMajor.Minorのみが表示されるため、パッチレベルのタグを使っても読者に見える精度は上がらず、ドキュメントの他のタグ付け方法と異なるだけです。説明文でもパッチ番号を明記しないでください。 累積ドキュメントでは、マイナーレベルのタグは常にそのマイナーバージョンの最新パッチを表します。機能がいずれかのパッチで提供されたら、そのマイナーバージョンで利用可能とだけ記述し、「x.y.zから」といった限定は付けません。プレーンテキストでパッチに言及するのは極めてまれな例外です(バージョン表示に関する注意を参照)。パッチを省くことで同じマイナーバージョンの以前のパッチを使う読者に実質的な誤解を与える場合に限って検討し、暗黙に追加するのではなく、レビューで確認すべき判断事項として扱ってください。そうした記述は、ドキュメント全体が前提としている考え方を損なうためです。
  • あるバージョン以降の、終了時期が定まっていない提供状況には x.x+ を使います。例:stack: ga 9.1+。
  • ちょうど1つのマイナーバージョンを示すには =x.x を使います。例:stack: preview =9.0。
  • 両端を含む範囲には x.x-y.y を使います。例:stack: beta 9.1-9.2。
  • Serverless GAの提供状況など、バージョン管理されていない製品やデプロイメントにはバージョンを追加しないでください。
  • ga 9.1はdocs-builderで受け付けられるため、無効な形式として扱わないでください。ただし、タグの作成または正規化では、終了時期が定まっていない意図を示すため、ga 9.1+を優先してください。

バージョン表示に関する重要な注意:

  • バージョンをソースでパッチバージョンまで指定していても、バッジには常に Major.Minor(例:9.1)で表示されます。
  • 各バージョン表記は、指定したマイナーバージョンの最新パッチに対応します(例:9.1は9.1.0、9.1.1、9.1.6などを表します)。これは累積ドキュメントの重要な前提です。機能が実際に提供されたパッチを、タグでも説明文でも明記しないでください。いずれかのパッチで提供された時点で、その機能はそのマイナーバージョンに属します。
  • プレーンテキストで特定のパッチに言及するのは、通常の方法ではなく、極めてまれな例外です。パッチを省くと実質的な誤解を招く場合に限って検討し、わずかな不正確さを避けるためだけには使わないでください。暗黙に追加するのではなく、質問として提示することを優先してください。
  • 範囲を示すバッジの表示は、2つ目のバージョンのリリース状況によって変わります(終了バージョンがまだリリースされていない場合、9.0-9.2ではなく9.0+と表示されることがあります)。
暗黙のバージョン推論

stack: preview 9.0, beta 9.1, ga 9.3は、preview =9.0, beta 9.1-9.2, ga 9.3+として解釈されます。最後のライフサイクルは常に終了時期が定まっていません。

推論ルールは次のとおりです:

  1. 連続するバージョン:あるライフサイクルの直後に、次のマイナーバージョンで別のライフサイクルが続く場合、完全一致(=x.x)として扱われます。
  2. 連続しないバージョン:間に空きがある場合、開始バージョンから次のライフサイクルの1つ前のバージョンまでの範囲になります。
  3. 最後のライフサイクル:常に以上(x.x+)として扱われます。
バージョンの自動ソート

同じ製品に複数のバージョンを指定すると、ビルドシステムがソースファイル内の順序にかかわらず、降順(最も高いバージョンが先)に自動で並べ替えます。バージョンのない項目は最後に並びます。

例:

stack: preview =9.0, beta =9.1, ga 9.2+

常に「9.2以降はGA、9.1はBeta、9.0はPreview」のように、新しい順で表示されます。

同様に、1つのディレクティブ内に複数のキーがある場合も、一貫した順序に並べ替えられます:Stack/Serverlessが最初、次にデプロイメントタイプ(ECH、ECK、ECE、Self-managed)、続いて製品キーです。

Settings YAML

{settings} YAML(例:advanced-settings-*.yml や docs/reference/configuration-reference/*.yml)では、同じ applies_to キーを使用しますが、作成時のルールは異なります。Settings YAML の applies_to を参照し、そのページに従ってください。

各設定エントリーでは:

  • stack にはライフサイクルとバージョンを記述します。新しい設定にはバージョンを含めます(ga 9.4+ または preview 9.5+)。設定が 9.0 より前に追加された場合に限り、省略します。パッチバージョンではなく、マイナーバージョンを指定します(ga 9.4+)。対象のマイナーバージョンがまだリリースされていない場合も、バージョンを記述します。リリースまではドキュメントに Planned と表示されます。
  • ech、ece、eck、self、serverless はサポートフラグです。値は ga または unavailable とします。バージョンは指定しません。また、preview、experimental、deprecated、removed は指定しません。5 つすべてを必ず記述します。
  • デプロイメントキーの ga は、その設定がそこでサポートされていることを意味します。設定が一般提供されているという意味ではありません。
  • stack: preview と ech: ga の組み合わせは正しい指定です。
  • 設定によっては、一部の Serverless プロジェクトでのみ使用できます(Advanced Settings でよく見られます)。その場合は、スカラー値の serverless: ga/serverless: unavailable を記述するのではなく、serverless の下にプロジェクトキーをネストします。ネスト可能なキーは elasticsearch、observability、security、vectordb です。設定を含むプロジェクトには ga を指定します。これらはサポートフラグであり、バージョンではありません。また、preview/experimental/deprecated/removed も指定しません。workplace_ai はネストしないでください。このプロジェクトタイプはリリースされておらず、docs-builder に workplace_ai キーはありません。同じエントリーで、スカラー値の serverless: とネストしたプロジェクトキーを併用しないでください。
  • 子設定でフィールドを省略した場合、親の applies_to を継承します。子設定で applies_to を指定した場合、そのマップは親の値を引き継がず、親のマップを置き換えます。
  • Elastic Stack に存在していた設定を削除する場合も、以前のバージョンを使用している読者がキーを見つけられるよう、YAML エントリーを残します。stack に removed とバージョンを追加し、デプロイメントキーには同じ ga/unavailable の値を維持します。ech、ece、eck、self に removed を指定してはいけません。設定が Serverless からは削除されても Stack に残る場合は、serverless: unavailable と記述します。Serverless にのみ存在していた設定を削除する場合は、エントリーを削除します。

この YAML には、本文の Markdown 向けの以下のルールを適用しないでください:複数の次元、stack とデプロイメントキー間でのライフサイクルの対称性、ページレベルのフロントマターの欠落。

Kibana の kibana.yml または Advanced Settings のキーを追加・変更するタスクでは、docs-kibana-settings を使用してください。

検証ルール

検証時には、次のエラーがないか確認してください。

  1. ページレベルのタグがない — すべてのページのフロントマターに applies_to が必要です
  2. ディメンションの混在 — ページレベルでは、ディメンションは1つだけにしてください(stack/serverless、deployment、productのいずれか)。{settings} YAMLには適用されません。Settings YAMLを参照してください。
  3. ライフサイクルごとに1つのバージョン — ga 9.2, ga 9.3 は無効です
  4. キーごとに1つのオープンエンド指定 — キーごとに + ライフサイクルを指定できるのは1つだけです
  5. 正確なバージョン指定の構文が無効 — 正確なバージョンには =x.x または =x.x.x を使用してください。正確な指定を意図したバージョンを、= を付けずに記述してはいけません
  6. 範囲の順序が無効 — x.x-y.y の最初のバージョンは、2番目のバージョン以下でなければなりません
  7. 範囲の形式が不正 — 範囲内ではスペースを入れず、ハイフンを1つだけ使用してください。また、+ と範囲の終点を組み合わせてはいけません
  8. 範囲の重複がないこと — ga 9.2+, beta 9.0-9.2 は、9.2が重複するため無効です
  9. 非推奨のデプロイメントキー — ess は非推奨です。新規または更新するコンテンツでは、Elastic Cloud Hosted に ech を使用してください
  10. 見出しの注釈 — セクションレベルでのみ使用し、見出しにインライン注釈を付けてはいけません。ブロックは見出しの直下の行に置き、間に空行を入れないでください
  11. 本文中のバージョン番号 — applies_to バッジの横に本文でバージョンを記載してはいけません
  12. パッチレベルのタグ — タグにはパッチではなくマイナーバージョンを指定してください(stack: ga 9.4。stack: ga 9.4.2 ではありません)。パッチレベルのタグと、それに伴って重複しがちな同じマイナーバージョンの箇条書きにはフラグを立ててください
  13. 段落途中のインラインタグ — インラインの {applies_to} タグを段落の途中に置いてはいけません。有効な位置は、段落の先頭、リスト項目の先頭、定義語の末尾、または表のセル内です。同じ段落内で本文の後に続くタグは、文と文の間、文の後、文の途中のいずれにあっても無効です

タグ付けのガイドライン

applies_to が必要かどうかを判断する

タグを付けない場合:

  • 編集内容がすべてのバージョンに適用される場合(言い換え、誤字の修正、構成の変更など)。バージョンに限定される内容ではありません。
  • 親ページまたは親セクションに、適切な applies_to がすでにある場合。繰り返すと冗長になります。
  • 変更内容が特定のバージョンに限定されるものの、小さなインライン表現で意味を伝えられる場合。最もよくある例は、UI要素の名称変更です。applies_to を使って手順を分割する代わりに、「新しい名前を選択します(以前のバージョンでは古い名前)」と記述してください。手順を理解するうえで違いが重要な場合に限り、「使用しているバージョンによって異なります」を追加します。表現は1つにとどめ、名称変更の説明は加えないでください。この例外は、既存のコントロールまたはラベルの名称変更にのみ適用されます。新しい機能、オプション、ワークフローの手順、利用可能性の変更、動作の変更には適用されません。
  • バージョン指定のない製品に GA 機能を追加する場合で、ページレベルのライフサイクルですでにコンテンツが網羅されているとき。

タグを付ける場合:

  • コンテンツが実際に特定のバージョンまたはデプロイメントに限定され、親タグですでに網羅されておらず、インラインで表すよりもタグ付けが適切な場合。
  • 特定のリリースで機能が追加される場合、ライフサイクルの状態が変わる場合(プレビューから GA への移行、非推奨化、削除など)、または製品やデプロイメントの種類によって利用可能性が異なる場合。
  • バージョンに限定された新しい機能、オプション、ワークフローの手順、利用可能性の変更、動作の変更を文書化する場合。対象のマイナーバージョンが未リリースであっても、適切な applies_to タグを追加してください。リリース状況によって、使用できるバージョンの根拠は変わりますが、バージョンに限定されたドキュメントにバッジが必要かどうかは変わりません。
配置とライフサイクルの適切な管理
  • 文中ですでに該当するデプロイ方式を挙げている場合は、インラインの {applies_to} デプロイバッジを重複して付けないでください。
  • 機能に applies_to バッジが適切に付いている場合、そのバッジで不要になった古い注意書きは削除してください。
  • リストの項目ごとに対象範囲を指定してください。兄弟項目の開始バージョンが異なる場合、1つのコンテナーにタグを付けて上書きする方法は使わないでください。
  • 隣接する段落にまとめられず、追加できるリストもないバージョン限定の内容は、単独でタグ付き段落にするのではなく、:applies_to: メタデータ付きの :::{note} または :::{tip} にしてください。
対象バージョンをすでに扱っているコンテンツに統合する

新しいタグ付きの箇条書き、セクション、ブロックを追加する前に、そのページに同じマイナーバージョンを扱う構造がすでにあるか確認してください。ある場合は、並行する構造を新たに作らず、既存の構造を拡張してください。

タグはマイナーバージョン単位で解決されるため、すでに扱われているマイナーバージョンに該当する内容は、そのバージョンを表す既存の構造に含めてください。たとえば、リストに {applies_to}stack: ga 9.4`` の箇条書きがすでにあり、9.4.2 でリリースされた関連情報を記載する場合は、同じ 9.4 の箇条書きにまとめてください。2つ目の stack: ga 9.4.2 の箇条書きを追加すると冗長になり、そのバージョンの情報が分散し、同じバッジが目に見える形で重複します。新しい文やオプションを既存の箇条書きに統合するか、タグが付いた既存のセクションに追加してください。

これは、「マイナーバージョン単位でタグを付ける」という原則を累積型ドキュメントに適用したものです。1つのマイナーバージョンにつき、記載箇所は1つです。

累積型の記述では最も簡潔な形式を優先する

内容をバージョンまたはデプロイ方式で限定する必要がある場合は、要件を満たす最も簡潔な形式を選んでください。

  1. タグ付きのヒント、注記、または短い段落 — 既存の内容に追加する変更です。既存の内容には手を加えません。
  2. タグ付きの箇条書き — 一部のリスト項目が特定のバージョンまたはデプロイ方式にのみ該当します。
  3. applies-switch タブ — 2つのコンテキストの内容が実質的に多く、明確に異なる場合にのみ使用します。

タグ付きのヒントや箇条書きで対応できる場合は、タブを使わないでください。

バージョンごとに内容が異なるリスト。 2つ以上のタグ付き箇条書きが、異なるバージョンで同じ事実を示す場合は、次のようにしてください。

  • それらを独立したリストにまとめてください。無関係な箇条書きと混在させないでください。
  • 共通する条件を示す、タグのない文から始めてください。
  • 新しいものから先に並べてください。serverless と最新のスタックタグを先に、その後に古いスタック範囲を記載します。
  • 範囲の両端は、いずれも根拠を確認できるものにしてください。その動作が始まったマイナーバージョン、または「X まで」を示すコーパス内の類似パターン(通常は 9.0-X)を使います。「現行の 8.x」や、確認していないバージョンから範囲を始めないでください。
変更が適用される場所に applies_to を配置する

変更の適用範囲に合った形式を選びます。

  • セクションレベル — 変更がセクションに関連する場合は、見出しの直後にフェンス付きの {applies_to} ブロックを配置します。
  • ページレベル — ページ全体が変更の適用範囲となる場合は、YAML フロントマターを使用します。
  • インライン — 段落の途中には絶対に配置しないでください。 有効な位置は、新しい段落の先頭、リスト項目の先頭、定義語句の末尾、またはテーブルセル内です。同じ段落内でタグより前に文章がある場合、そのタグは段落の途中にあり、無効です。これは絶対的なルールです。「タグの前に文を一つだけ置く」場合や、タグを適用対象の文のすぐ隣に置く場合も例外ではありません。
    • 同じ段落内の2つ目の文の前にインラインタグを繰り返し配置し、その適用範囲を「広げる」ことは避けてください。 ピリオドの直後、次の文の前に置かれたタグは、上記の「文と文の間に浮いたタグ」に該当します。タグが適用対象の文のすぐ隣に見えても変わりません。
      • ❌ {applies_to}stack: preview 9.6+ Use coordinator mode for this. {applies_to}`stack: preview 9.6+ It also does this other thing.`
      • ✅ 1組のタグが全体を明確に対象とするよう、1つの文にまとめます:{applies_to}stack: preview 9.6+`` Use coordinator mode for this, which also does the other thing.`
      • ✅ あるいは、2つの異なる内容を1つの文にまとめると無理がある場合は、「適用範囲をできるだけ簡潔にする」を参照し、それぞれの文にタグを付けるのではなく、内容を独立した短い段落に移してタグを付けます。
    • 2つの文の間にタグを1つだけ挿入した場合でも、タグは浮いた状態になります。 適用対象の文のすぐ隣にあるだけでは、適用範囲は明確になりません。適用範囲を明確にできるのは、空行による段落の区切り、またはリスト項目、定義語句、テーブルセルといった許可されたインライン位置だけです。
      • ❌ General statement that applies to every version. {applies_to}stack: ga 9.5+`` This part only applies from 9.5.`
      • ✅ 2つの段落に分け、空行を挟んでタグを適用対象の段落の先頭に配置します:
        General statement that applies to every version.
        
        {applies_to}`stack: ga 9.5+` This part only applies from 9.5.
        
  • アドモニションまたはドロップダウン — インラインで使用できる上記の位置に収まらない文章にバージョンの適用範囲を指定する場合は、:applies_to: ディレクティブオプションを使用します。インラインタグの新たな配置方法を作るのではなく、文章をアドモニション内に再構成してください。
  • applies-switch タブ — コンテキストごとに内容が実質的に異なる場合に限って使用します(サーバーレスに同等の手順がないスタック専用の手順や、コードが大きく異なる場合など):
::::{applies-switch}
:::{applies-item} stack: ga
Stack-specific content here.
:::
:::{applies-item} serverless: ga
Serverless-specific content here.
:::
::::
適用範囲を明確にする

applies_to ブロックを追加する前に、見出しとブロックの位置だけから、人間の読者にも自動ツールにも、タグがどの内容に適用されるか正確に判断できることを確認してください。少しでも曖昧な点があれば、セクションを再構成してください。

よくあるパターン

スタックとサーバーレスの両方:

applies_to:
  stack: ga
  serverless: ga

バージョン履歴を伴う段階的な GA 化:

applies_to:
  stack: preview =9.0, ga 9.2+
  serverless: ga

サブキーを含むサーバーレス:

applies_to:
  serverless:
    security: ga
    observability: ga
    elasticsearch: unavailable

サブキーを含むデプロイメント:

applies_to:
  deployment:
    ece: ga 4.0
    eck: ga 3.0
    ech: ga
    self: ga

機能の非推奨化から削除まで:

applies_to:
  stack: deprecated 9.1-9.3, removed 9.4+

サーバーレスでは利用できないセクション:

```{applies_to}
serverless: unavailable
```

単一のプロパティに対するインライン指定:

**Density** {applies_to}`stack: ga 9.1+`

ドキュメントを累積的に扱うルール

Elastic のドキュメント(V3、elastic.co/docs)は累積的なものです。1つのページが、複数のバージョンとデプロイメントタイプにわたって同時に有効であり続けます。このため、進化する機能に対する applies_to タグの記述方法や、バージョンを限定した内容の保持方法が決まります。

可能な限り古い内容を残す

バージョンに応じたコンテンツに関する変更を提案する前に、次の点を確認してください。

  1. 以前のバージョンを使うユーザーにも、古い情報は引き続き必要ですか? 通常は必要です。ドキュメントは、現在サポートされているすべてのバージョンを対象とします。古い内容を置き換えるのではなく、タグを付けた新しい内容を古い内容と並べて追加してください。
  2. その変更は、本当に特定のバージョンやデプロイメントに限定されますか? 新しい内容がすべてのバージョンに当てはまるなら、applies_to は必要ありません。タグ付けのガイドラインにある applies_to が必要かどうかを判断する を参照してください。
ライフサイクルの変更
  • バージョン管理される製品(スタック): 新しい状態を追加し、古い状態は残します。9.0 で preview、9.2 で ga になった機能は、stack: ga 9.2+, preview =9.0 となります。古いバージョンの読者には引き続きプレビューの注記が表示され、新しいバージョンの読者には GA バッジが表示されます。
  • バージョン管理されない製品(サーバーレス): 古い状態を完全に置き換えます。ユーザーに表示されるのは現在の状態のみです。引き継ぐべきバージョンの軸がありません。
削除
  • バージョン管理される製品から GA 機能または非推奨機能が削除された場合 → 内容は残し、既存の applies_to に stack: removed 9.x を追加します。古いバージョンの読者も引き続きドキュメントを見つけられます。
  • バージョン管理されない製品からのみ機能が削除された場合 → バージョン管理される製品に引き続き関連する場合を除き、内容を削除できます。
  • プレビューまたはベータ版のみだった機能 → ライフサイクルが終了したら、製品の種類にかかわらず内容を削除できます。
バージョン表示に関する注意事項
  • リリース前は「Planned」バッジのテキストと矛盾するため、バッジの近くの文章にバージョンを記載しないでください。
  • ソースにパッチ番号が含まれていても、バッジには Major.Minor 形式でバージョンが表示されます。
  • 各バージョンの記述は、そのマイナーバージョンの最新パッチを対象とします。同じマイナーバージョンの以前のパッチを使う読者に誤解を与える場合を除き、文章にも特定のパッチを記載しないでください。
対応開始バージョンとバックポートラベル

課題の対応状況表に記載されたバージョンや、開発 PR に付けられた vX.Y.Z ラベルは、バックポート先を示すものであり、そのマイナーバージョンに変更が含まれたリリースがあったことを証明するものではありません。累積モデルでは、読者は各マイナーバージョンの最新パッチを使用します。変更がそのマイナーバージョンのリリースに実際に含まれた場合にのみ、そのマイナーバージョンにタグを付けてください。バックポートが行われる前にそのマイナーバージョンが終了していた場合(たとえば、9.3 が 9.3.8 で終了した後の v9.3.9 ラベルなど)、そのマイナーバージョンを applies_to の基準にしてはいけません。applies_to は単調に増加する単一の Major.Minor のタイムラインであり、連続しないバージョンの集合は表現できません(間に空白がある状態で、末尾の特定のマイナーバージョンだけを対象から外すのが一般的です)。

同じルールは範囲の開始点にも当てはまります。後に変更された長年の値を「現在の 8.x から GA」としてはいけません。その値が始まったマイナーバージョン、または「X まで」を表すコーパスのパターン(9.0-X)を使ってください。開始点を推測してはいけません。

意図から生成する実行フロー

ユーザーが変更内容を説明し、既存ファイルを提示せずに、適用する applies_to 構文を尋ねている場合は、このフローを使ってください。

ステップ 1:変更内容の説明を抽出する

ユーザーのプロンプトから、次の情報を抽出します。不足している情報があり、それが重要な場合は、焦点を絞った確認質問を1つしてください。

  • ディメンション — stack/serverless、デプロイ、またはプロダクト。stack と serverless の両方に該当する場合は、stack/serverless を使用します。ページ単位では1つのディメンションのみを使用します。
  • キーごとのライフサイクル — experimental、preview、beta、ga、deprecated、removed、または unavailable。
  • ライフサイクルごとのバージョン(バージョン管理されているプロダクトのみ) — 各ライフサイクルが始まるマイナーバージョン(またはパッチバージョン)。
  • サブプロジェクト(serverless のみ) — elasticsearch、observability、security、vectordb。すべてに該当する場合は省略します。
  • 変更の範囲 — ページ全体、特定のセクション、リスト項目、段落、または注意書き。生成する注釈のレベルを決定します。
  • 変更によって既存の内容を保持するか置き換えるか — 既存ページを更新する場合、旧バージョンを利用する読者に古いテキストが引き続き必要かどうかを確認します。上記の累積ドキュメントのルールを適用します。
  • Settings YAML — 変更が {settings} YAML エントリーの場合は、ページレベルの複数ディメンションに関するルールではなく、Settings YAMLに従います。
ステップ 2:保持するか置き換えるかを決める

累積ドキュメントのルールを適用します。

  • ページに以前の状態(例:以前のデフォルト値や動作)がすでに記載されている場合は、古い内容を置き換えるのではなく、新しい内容にタグを付けて併記することを優先します。
  • バージョン管理されたプロダクトのライフサイクル変更では、新しい状態を既存のタグに追加します。
  • バージョン管理されていないプロダクトのライフサイクル変更では、古い状態を置き換えます。
  • バージョン管理されたプロダクトから削除する場合は、内容を残し、removed を追加します。
ステップ 3:変更の範囲に合った形式を選ぶ

タグ付けのガイドラインにある「変更が適用される場所に applies_to を配置する」ルールに従います。

  • ページ全体 → フロントマター。
  • セクション → 見出しの直後にフェンス付き {applies_to} ブロック。
  • リスト項目、定義語、または表のセル → 許可された位置にインラインで記述。
  • インラインでの記述に適さない本文 → :applies_to: を含む注意書きに再構成。
  • コンテキストによって内容が実際に異なる場合 → applies-switch タブ。

タグを生成する前に、適用条件も確認します。変更は実際にバージョンに依存するものですか? 親タグですでに適用範囲がカバーされていますか? 小さなインラインパターン(例:UI 要素の名称変更を「New name を選択(以前のバージョンでは Old name)」と記述する方法)で、applies_to を使わずに意味を伝えられますか? いずれかに該当する場合は、タグを生成する代わりに、その方法を回答として返します。

ステップ 4:標準構文を生成する

範囲に応じて適切な形式を出力します。

  • ページ全体 — YAML フロントマター:

    ---
    applies_to:
      stack: ga 9.5+
      serverless: ga
    ---
    
  • セクション — 見出しの直後にフェンス付きブロック:

    ## Section title
    ```{applies_to}
    stack: ga 9.5+
    ```
    
  • インライン(段落の先頭、リスト項目、定義語、表のセル — 段落の途中には置かない):

    {applies_to}`stack: ga 9.5+` This sentence applies from 9.5 onward.
    
    - {applies_to}`serverless: ga` Serverless item.
    - {applies_to}`stack: ga 9.5+` Stack 9.5+ item.
    
  • 注意書きまたはドロップダウン — ディレクティブ自体に :applies_to: ディレクティブオプションを使用します。

  • Settings YAML エントリー — Settings YAMLにあるマップ形式を使用します。stack と5つすべてのサポートキーを列挙します。

バージョン管理されたプロダクトに複数のライフサイクル状態が適用される場合は、ソース内で新しい状態から順に記述します。stack: ga 9.5+, preview =9.4。ビルド時にはレンダリング順が降順に並べ替えられますが、読者が内容を素早く把握できるよう、ソースも新しい状態から記述します。

ステップ 5:出力する

次の内容を返します。

  • 範囲に適した形式で生成した applies_to 構文。
  • 簡潔な理由:ディメンション、ライフサイクル状態、バージョン構文(終了バージョンを指定しない +、厳密なバージョン指定 =x.x、または範囲 x.x-y.y)、および適用範囲のレベル。
  • 内容を保持する場合は、既存のどの内容を残し、何を追加して併記するかを明記します。

タスクの実行

validate モード(ファイルパス、ディレクトリ、または貼り付けられたページコンテンツ)では、次のフローを使用します。

  1. 設定 YAML を検出します。 パスが .yml/.yaml の場合、またはコンテンツに groups: と setting: エントリが含まれる場合は、Settings YAML に従います。そこに記載されている本文の Markdown ルールはスキップします。
  2. スコープ内の .md ファイルと、スコープがディレクトリの場合は設定 YAML を glob で検索します。
  3. 各 Markdown ファイルを 読み込み、正しい frontmatter applies_to があるか確認します。
  4. Markdown タグを上記の 検証ルール に照らして 検証 します。設定 YAML は Settings YAML に照らして検証します。
  5. 見つかった問題(タグの不足、無効な構文、誤った配置)を 報告 します。それぞれに行番号と修正後の構文を示し、呼び出し元がファイルを直接編集せずに修正を適用できるようにします。
  6. 明示的に依頼された場合のみ 編集 します。入力でタグの修正、適用、または訂正が明示的に求められた場合に限り、Edit を使用して修正を適用します。ファイルパスのみの指定はその依頼に該当しないため、報告して終了します。呼び出し元がプルリクエストをレビューしている場合、作業ツリーを編集することはサービスではなく不具合となります。ファイルを指定せず変更内容から生成する場合は、Generate-from-intent execution フローを使用します。
  7. 見つかった問題を要約し、手順 6 で許可されている場合に限り、変更内容も要約します。

参考資料

キーの完全な一覧、高度なシナリオ、バッジの配置の詳細については、次の URL を取得してください。

コメント