app-summary について
既存の ServiceNow アプリケーションを構造化して要約するスキルです。開発者や管理者がデータモデル、スクリプト、アクセス制御、依存関係、健全性を整理し、レビューやアップグレード、オンボーディングに活用できます。
主な機能
- 01アプリケーションのメタデータとスコープの確認
- 02テーブル、フィールド、スクリプトの棚卸し
- 03ACLとアプリケーションロールの確認
- 04依存関係と連携の整理
- 05複雑さと健全性の評価
活用シーン
- 01アップグレードに向けたアプリの調査
- 02オンボーディング用のアプリ文書作成
- 03技術的負債や統合候補の評価
MCP 対応
SN-Query-Table や SN-Get-Record などの ServiceNow MCP ツールでアプリケーションのメタデータや成果物を取得します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill app-summaryインストール後、Claude Code で/app-summaryを入力して読み込まれたか確認します。
詳細
ServiceNow アプリケーションの概要
概要
このスキルでは、既存の ServiceNow アプリケーションについて、以下を含む包括的な概要を生成します。
- アプリケーションのスコープとメタデータの分析
- テーブル構造とデータモデルのドキュメント化
- スクリプトの一覧(ビジネスルール、クライアントスクリプト、スクリプトインクルード、UI アクション)
- ACL とロールの分析
- 依存関係と統合のマッピング
- 構成アーティファクトの一覧
- アプリケーションの健全性と複雑さの評価
使用する場面: アプリケーションポートフォリオのレビュー中、アップグレードや移行の前、開発者のオンボーディング時、ドキュメントの生成、技術的負債の評価、またはアプリケーションの統合を検討する際に使用します。
前提条件
- ロール:
admin、application_developer、または sys_scope と sys_metadata への読み取りアクセス権 - アクセス: sys_scope、sys_app、sys_metadata、sys_db_object、sys_dictionary、sys_script テーブル
- 知識: ServiceNow のアプリケーションモデル、スコープ付きアプリケーションの構造
- 関連スキル: アプリケーション構造について理解するため、
genai/app-generationを完了してください
手順
ステップ 1:アプリケーションを特定する
名前でアプリケーションを検索する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_scope
query: nameLIKE[app_name]^active=true
fields: sys_id,name,scope,short_description,version,vendor,vendor_prefix,sys_created_on,sys_updated_on
limit: 10
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_scope?sysparm_query=nameLIKE[app_name]^active=true&sysparm_fields=sys_id,name,scope,short_description,version,vendor&sysparm_limit=10" \
-H "Accept: application/json"
すべてのカスタムスコープ付きアプリケーションを一覧表示する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_scope
query: scopeSTARTSWITHx_^active=true
fields: sys_id,name,scope,version,vendor,sys_created_on
limit: 100
ステップ 2:アプリケーションのメタデータを取得する
アプリケーションの詳細情報をすべて取得する:
MCP の方法:
Tool: SN-Get-Record
Parameters:
table_name: sys_scope
sys_id: [scope_sys_id]
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_scope/[scope_sys_id]" \
-H "Accept: application/json"
sys_app で追加のメタデータを確認する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_app
query: scope=[scope_name]
fields: sys_id,name,version,short_description,template,active
limit: 1
ステップ 3:アプリケーションのすべてのアーティファクトを一覧表示する
種類別にアーティファクト数を取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_metadata
query: sys_scope=[scope_sys_id]
fields: sys_id,sys_class_name,sys_name,sys_created_on
limit: 500
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_metadata?sysparm_query=sys_scope=[scope_sys_id]&sysparm_fields=sys_id,sys_class_name,sys_name&sysparm_limit=500" \
-H "Accept: application/json"
結果を sys_class_name ごとにグループ化して、アーティファクトの概要を作成します。
Artifact Inventory:
sys_db_object (Tables): X
sys_dictionary (Fields): X
sys_script (Business Rules): X
sys_script_client (Client Scripts): X
sys_script_include (Script Includes): X
sys_ui_action (UI Actions): X
sys_ui_page (UI Pages): X
sys_security_acl (ACLs): X
sys_properties (Properties): X
sys_ui_form_section (Form Sections): X
...
ステップ 4:テーブル構造を分析する
アプリケーション内のすべてのテーブルを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_db_object
query: sys_scope=[scope_sys_id]
fields: sys_id,name,label,super_class,is_extendable,number_ref,sys_created_on
limit: 50
各テーブルのフィールド定義を取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_dictionary
query: name=[table_name]^sys_scope=[scope_sys_id]^elementISNOTEMPTY
fields: element,column_label,internal_type,max_length,mandatory,reference,unique,active
limit: 100
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_dictionary?sysparm_query=name=[table_name]^sys_scope=[scope_sys_id]^elementISNOTEMPTY&sysparm_fields=element,column_label,internal_type,max_length,mandatory,reference&sysparm_limit=100" \
-H "Accept: application/json"
テーブルのレコード数を取得する(データ量を評価):
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_table_rotation
query: name=[table_name]
fields: name,max_size,size
limit: 1
ステップ 5:スクリプトを一覧表示する
ビジネスルールを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_script
query: sys_scope=[scope_sys_id]
fields: sys_id,name,collection,when,order,active,action_insert,action_update,action_delete
limit: 100
クライアントスクリプトを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_script_client
query: sys_scope=[scope_sys_id]
fields: sys_id,name,table,type,fieldname,active,ui_type
limit: 100
スクリプトインクルードを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_script_include
query: sys_scope=[scope_sys_id]
fields: sys_id,name,api_name,client_callable,active,access
limit: 100
UI スクリプトを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_ui_script
query: sys_scope=[scope_sys_id]
fields: sys_id,name,global,active,ui_type
limit: 50
ステップ 6:ACL とロールを分析する
アプリケーションのロールを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_user_role
query: sys_scope=[scope_sys_id]
fields: sys_id,name,description,assignable_by
limit: 50
ACL ルールを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_security_acl
query: sys_scope=[scope_sys_id]^active=true
fields: sys_id,name,operation,type,admin_overrides,condition,advanced
limit: 100
REST の代替方法:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/sys_security_acl?sysparm_query=sys_scope=[scope_sys_id]^active=true&sysparm_fields=sys_id,name,operation,type,admin_overrides&sysparm_limit=100" \
-H "Accept: application/json"
ステップ 7:依存関係をマッピングする
スクリプト内のスコープをまたぐ参照を確認する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_scope_privilege
query: source_scope=[scope_sys_id]^ORtarget_scope=[scope_sys_id]
fields: sys_id,source_scope,target_scope,type,operation,status
limit: 50
統合(REST メッセージ、SOAP など)を確認する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_rest_message
query: sys_scope=[scope_sys_id]
fields: sys_id,name,rest_endpoint,authentication_type
limit: 20
スケジュール済みジョブを確認する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sysauto_script
query: sys_scope=[scope_sys_id]
fields: sys_id,name,active,run_type,run_period
limit: 20
ステップ 8:UI 構成を分析する
UI アクションを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_ui_action
query: sys_scope=[scope_sys_id]^active=true
fields: sys_id,name,table,action_name,client,form_button,list_button
limit: 50
ナビゲーションモジュールを取得する:
MCP の方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_app_module
query: sys_scope=[scope_sys_id]
fields: sys_id,title,link_type,name,query,order
limit: 30
ステップ 9:アプリケーションの概要をまとめる
構造化された概要レポートを生成します。
Application Summary: [App Name]
================================================
Scope: [scope_name]
Version: [version]
Vendor: [vendor]
Created: [date] | Last Updated: [date]
Description: [short_description]
ARTIFACT INVENTORY:
Tables: [count]
Fields: [count]
Business Rules: [count] (active: X, inactive: Y)
Client Scripts: [count]
Script Includes: [count]
UI Actions: [count]
ACL Rules: [count]
Roles: [count]
Properties: [count]
Scheduled Jobs: [count]
REST Messages: [count]
Total Artifacts: [count]
TABLE STRUCTURE:
[Table 1 Name] ([Label])
- Extends: [parent table]
- Fields: [count]
- Key Fields: [list of mandatory/unique fields]
[Table 2 Name] ([Label])
...
SCRIPT INVENTORY:
Business Rules:
- [Rule Name] on [Table] ([when], order [N]) - [Active/Inactive]
Client Scripts:
- [Script Name] on [Table] ([type]) - [Active/Inactive]
Script Includes:
- [Include Name] (client_callable: [yes/no]) - [Active/Inactive]
SECURITY MODEL:
Roles:
- [Role Name]: [Description]
ACLs:
- [Table].[Operation]: [Conditions/Roles]
DEPENDENCIES:
Cross-scope references: [list]
Integrations: [list]
Scheduled Jobs: [list]
COMPLEXITY ASSESSMENT:
- Table Count: [Low/Medium/High]
- Script Density: [Low/Medium/High]
- Integration Points: [count]
- Overall Complexity: [Low/Medium/High]
ツールの使用方法
| アクション | MCP ツール | REST エンドポイント |
|---|---|---|
| アプリケーションを検索 | SN-Query-Table | GET /api/now/table/sys_scope |
| アプリのメタデータを取得 | SN-Get-Record | GET /api/now/table/sys_scope/{sys_id} |
| すべてのアーティファクトを一覧表示 | SN-Query-Table | GET /api/now/table/sys_metadata |
| テーブルを取得 | SN-Query-Table | GET /api/now/table/sys_db_object |
| フィールドを取得 | SN-Query-Table | GET /api/now/table/sys_dictionary |
| ビジネスルールを取得 | SN-Query-Table | GET /api/now/table/sys_script |
| クライアントスクリプトを取得 | SN-Query-Table | GET /api/now/table/sys_script_client |
| スクリプトインクルードを取得 | SN-Query-Table | GET /api/now/table/sys_script_include |
| ACL を取得 | SN-Query-Table | GET /api/now/table/sys_security_acl |
| ロールを取得 | SN-Query-Table | GET /api/now/table/sys_user_role |
ベストプラクティス
- sys_metadata から始める: スコープ内のすべてのアーティファクトを最もすばやく把握できます
- アーティファクトを種類ごとにグループ化する: sys_class_name を使うと、アーティファクトを効率的に分類して数えられます
- 有効か無効かを確認する: 無効なアーティファクトは、技術的負債や放棄された機能を示している場合があります
- スクリプトの複雑さを調べる: 長いスクリプトやスクリプト数の多さは、リファクタリングが必要な領域を示唆します
- すべてのインテグレーションを把握する: スコープ間および外部とのインテグレーションは、アップグレードの影響評価に不可欠です
- ドキュメントのないアプリを文書化する: 多くのカスタムアプリにはドキュメントがないため、概要を作成してこの不足を補います
- バージョンを比較する: 複数のバージョンがある場合は、バージョン間でアーティファクト数を比較します
- 孤立したアーティファクトを特定する: 存在しなくなったテーブルやフィールドを参照するスクリプトを探します
- テストカバレッジを評価する: スコープ内に ATF(Automated Test Framework)のテストがあるか確認します
- 更新セットを確認する: sys_update_set でデプロイ履歴を確認します
トラブルシューティング
アプリケーションが見つからない
症状: sys_scope のクエリで結果が返されない 原因:
- アプリケーションはスコープ付きアプリではなく、グローバルスコープのプラグインです
- アプリケーション名がスコープ名と異なります
- アプリケーションが無効です 解決方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_scope
query: nameLIKE[partial_name]^ORscopeLIKE[partial_name]
fields: sys_id,name,scope,active
limit: 20
メタデータ数が不完全
症状: sys_metadata の返すアーティファクト数が想定より少ない 原因: 一部のアーティファクトは sys_metadata を拡張していないか、クエリの上限が低すぎる可能性があります 解決方法: 上限を増やし、スコープ外のアーティファクトを確認します:
Tool: SN-Query-Table
Parameters:
table_name: sys_metadata
query: sys_scope=[scope_sys_id]
fields: sys_id,sys_class_name
limit: 1000
テーブル間の関係を特定できない
症状: 参照フィールドは存在するものの、関係が明確でない 解決方法: 参照フィールドに絞って sys_dictionary をクエリします:
Tool: SN-Query-Table
Parameters:
table_name: sys_dictionary
query: name=[table_name]^internal_type=reference
fields: element,column_label,reference
limit: 50
スコープ権限エラー
症状: 別のスコープのアーティファクトにアクセスできない 原因: スコープ間アクセスが許可されていません 解決方法:
Tool: SN-Query-Table
Parameters:
table_name: sys_scope_privilege
query: target_scope=[scope_sys_id]^status=allowed
fields: source_scope,target_scope,type,operation
limit: 20
例
例 1:カスタム HR アプリケーションの概要をまとめる
# Step 1: Find the application
Tool: SN-Query-Table
Parameters:
table_name: sys_scope
query: nameLIKEHR Onboarding
fields: sys_id,name,scope,version,vendor
limit: 5
# Result: sys_id = "scope123", scope = "x_acme_hr_onboard"
# Step 2: Get all artifacts
Tool: SN-Query-Table
Parameters:
table_name: sys_metadata
query: sys_scope=scope123
fields: sys_id,sys_class_name,sys_name
limit: 500
# Step 3: Get tables
Tool: SN-Query-Table
Parameters:
table_name: sys_db_object
query: sys_scope=scope123
fields: sys_id,name,label,super_class
limit: 20
# Step 4: Get scripts
Tool: SN-Query-Table
Parameters:
table_name: sys_script
query: sys_scope=scope123
fields: sys_id,name,collection,when,active
limit: 100
例 2:2 つのアプリケーションバージョンを比較する
# Get artifacts for version 1.0
Tool: SN-Query-Table
Parameters:
table_name: sys_metadata
query: sys_scope=[scope_v1_sys_id]
fields: sys_id,sys_class_name
limit: 500
# Get artifacts for version 2.0
Tool: SN-Query-Table
Parameters:
table_name: sys_metadata
query: sys_scope=[scope_v2_sys_id]
fields: sys_id,sys_class_name
limit: 500
# Compare artifact counts by type between versions
例 3:特定のベンダーが提供するすべてのアプリケーションを特定する
Tool: SN-Query-Table
Parameters:
table_name: sys_scope
query: vendor=Happy Technologies LLC^active=true
fields: sys_id,name,scope,version,sys_created_on
limit: 50
関連スキル
genai/app-generation- 要件に基づいて新しいアプリケーションを生成するdevelopment/code-review- アプリケーションのスクリプトの品質をレビューするdevelopment/code-assist- 既存のアプリケーション向けに新しいスクリプトを生成するadmin/update-set-management- アプリケーションをパッケージ化してデプロイするsecurity/acl-management- ACL を詳細に分析する