skills/ea/adr-summarization/SKILL.md
Summarize Architecture Decision Records with context, rationale, trade-offs, and impact analysis for enterprise architecture governance
npx skillsauth add happy-technologies-llc/happy-servicenow-skills adr-summarizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill covers summarizing Architecture Decision Records (ADRs) in ServiceNow Enterprise Architecture:
When to use: When stakeholders need consolidated views of architecture decisions, during architecture reviews, compliance audits, or when evaluating the impact of proposed changes on existing decisions.
ea_admin, ea_viewer, or adminea/business-app-insights for application-level contextBefore querying, understand the table structure.
Using MCP:
Tool: SN-Get-Table-Schema
Parameters:
table_name: sn_ea_architecture_decision_record
Using REST:
GET /api/now/table/sn_ea_architecture_decision_record?sysparm_limit=1
Accept: application/json
Key Fields: | Field | Description | |-------|-------------| | number | ADR number identifier | | title | Decision title | | status | Current status (proposed, accepted, deprecated, superseded) | | context | Business or technical context driving the decision | | decision | The architecture decision made | | rationale | Reasoning behind the decision | | consequences | Expected outcomes and trade-offs | | business_application | Related business application reference | | technology_standard | Associated technology standard | | created_by | Decision author | | sys_created_on | Creation date | | sys_updated_on | Last modification date |
Retrieve all active ADRs:
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: status=accepted^ORstatus=proposed
fields: sys_id,number,title,status,context,decision,rationale,consequences,business_application,technology_standard,sys_created_on,sys_updated_on
limit: 100
Using REST:
GET /api/now/table/sn_ea_architecture_decision_record?sysparm_query=status=accepted^ORstatus=proposed&sysparm_fields=sys_id,number,title,status,context,decision,rationale,consequences,business_application,technology_standard,sys_created_on,sys_updated_on&sysparm_limit=100
Accept: application/json
Filter ADRs by business application:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: business_application=[app_sys_id]
fields: sys_id,number,title,status,decision,rationale,consequences
limit: 50
Filter ADRs by date range:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: sys_created_on>=javascript:gs.dateGenerate('2025-01-01','00:00:00')^status=accepted
fields: sys_id,number,title,status,decision,consequences
limit: 100
Get associated business application details:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: sys_id=[business_application_sys_id]
fields: sys_id,name,short_description,business_criticality,lifecycle_stage,owned_by,managed_by
Get related technology standards:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_tech_standard
query: sys_id=[tech_standard_sys_id]
fields: sys_id,name,status,description,category,lifecycle_stage
Get associated architecture diagrams:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_diagram
query: business_application=[app_sys_id]
fields: sys_id,name,description,diagram_type,sys_updated_on
limit: 20
For each ADR, extract and categorize:
Identify potentially conflicting decisions:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: status=accepted^technology_standard=[same_standard_sys_id]
fields: sys_id,number,title,decision,consequences
limit: 50
Structure the ADR summary with these sections:
Update ADR with generated summary:
Tool: SN-Update-Record
Parameters:
table_name: sn_ea_architecture_decision_record
sys_id: [adr_sys_id]
data:
work_notes: |
AI-Generated Summary (as of YYYY-MM-DD):
Decision: [condensed decision statement]
Key Trade-offs:
+ [positive consequence 1]
+ [positive consequence 2]
- [negative consequence 1]
- [negative consequence 2]
Impact: Affects [N] business applications
Related Standards: [standard names]
Recommendation: [follow-up action]
Using REST:
PATCH /api/now/table/sn_ea_architecture_decision_record/[adr_sys_id]
Content-Type: application/json
{
"work_notes": "AI-Generated Summary: ..."
}
| Tool | Purpose | |------|---------| | SN-Get-Table-Schema | Discover ADR table fields and relationships | | SN-Query-Table | Retrieve ADRs, applications, standards, and diagrams | | SN-Get-Record | Get detailed single ADR with all fields | | SN-Update-Record | Store generated summaries back to ADR records | | SN-Create-Record | Create new summary records or tasks |
Symptom: Query returns empty result set Causes:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: ORDERBYDESCsys_created_on
fields: sys_id,number,title,status
limit: 5
Symptom: business_application field is empty on ADRs Cause: ADRs created without linking to business applications Solution: Query cmdb_ci_business_app separately and correlate by name or description keywords
Symptom: context, decision, or rationale fields return blank Cause: ADRs may use custom fields or journal fields Solution: Check table schema for custom columns or use work_notes/comments fields
Tool: SN-Get-Table-Schema
Parameters:
table_name: sn_ea_architecture_decision_record
Symptom: 403 or insufficient privileges error Cause: User lacks ea_viewer or ea_admin role Solution: Verify role assignment or request elevated access
# Step 1: Get the ADR
Tool: SN-Get-Record
Parameters:
table_name: sn_ea_architecture_decision_record
sys_id: abc123def456
# Result contains:
# title: "Adopt Kubernetes for Container Orchestration"
# status: "accepted"
# context: "Our microservices deployment requires automated scaling..."
# decision: "Adopt Kubernetes as the standard container orchestration platform..."
# rationale: "Kubernetes provides auto-scaling, self-healing, and wide ecosystem..."
# consequences: "Requires team training, increases infrastructure complexity..."
# Step 2: Get related application
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: sys_id=[business_application_value]
fields: name,business_criticality,lifecycle_stage
# Step 3: Generate summary output:
# ADR-0042: Adopt Kubernetes for Container Orchestration
# Status: Accepted | Created: 2025-06-15
# Application: Cloud Platform Services (Business Critical)
#
# Context: Microservices architecture requires automated container management
# Decision: Standardize on Kubernetes for all container orchestration
#
# Trade-offs:
# + Auto-scaling and self-healing capabilities
# + Large ecosystem and community support
# - Requires significant team training investment
# - Increases infrastructure complexity
#
# Impact: Affects 12 microservices across 3 business applications
# Step 1: Get all ADRs for a specific business domain
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: status=accepted^contextLIKEcloud^ORtitleLIKEcloud
fields: sys_id,number,title,status,decision,consequences,sys_created_on
limit: 50
# Step 2: For each ADR, fetch related records and build consolidated summary
# Step 3: Output a domain-level summary with decision timeline and dependency map
ea/business-app-insights - Application health and dependency analysisgenai/app-summary - Scoped application analysisgrc/compliance-assessment - Compliance implications of architecture decisionscmdb/relationship-mapping - Understanding CI dependencies affected by ADRstesting
Manage supplier onboarding, qualification, performance monitoring, and offboarding with auditable lifecycle controls
tools
Identify emerging risks, prioritize intake signals, and route candidates into formal GRC risk assessment workflows
documentation
Screen inbound documents for completeness, policy risk, and routing readiness before extraction or case workflows
testing
Generate concise task summaries with status, timeline, blockers, SLA risk, and recommended next actions