skills/spm/planning-summarization/SKILL.md
Summarize planning items, demand records, and portfolio decisions with executive summaries for planning meetings including key metrics and recommendations
npx skillsauth add happy-technologies-llc/happy-servicenow-skills planning-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 provides a structured approach to summarizing planning activities across ServiceNow's Strategic Portfolio Management module. It covers:
When to use: When portfolio managers, program managers, or product owners need concise summaries of planning data for governance meetings, sprint planning, release readiness reviews, or executive briefings in ServiceNow SPM.
com.snc.project (Project Portfolio Management), com.snc.sdlc.agile.2.0 (Agile Development 2.0)demand_manager, portfolio_manager, project_manager, scrum_master, or program_managerdm_demand, pm_portfolio, pm_program, pm_project, rm_sprint, rm_story, rm_release, planned_task tablesQuery demand records to understand the intake pipeline and pending decisions.
Using MCP (Claude Code/Desktop):
Tool: SN-Query-Table
Parameters:
table_name: dm_demand
query: stateNOT IN-5,4,7^ORDERBYpriority
fields: sys_id,number,short_description,state,priority,type,business_unit,requested_by,requested_for,estimated_cost,estimated_effort,strategic_alignment,score,due_date,assignment_group
limit: 50
Using REST API:
GET /api/now/table/dm_demand?sysparm_query=stateNOT IN-5,4,7^ORDERBYpriority&sysparm_fields=sys_id,number,short_description,state,priority,type,business_unit,requested_by,estimated_cost,estimated_effort,strategic_alignment,score,due_date,assignment_group&sysparm_limit=50&sysparm_display_value=true
Group demands by state for a pipeline overview:
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: dm_demand
query: state=1
fields: sys_id,number,short_description,priority,type,business_unit,estimated_cost,score
limit: 30
Using REST API:
GET /api/now/table/dm_demand?sysparm_query=state=1&sysparm_fields=sys_id,number,short_description,priority,type,business_unit,estimated_cost,score&sysparm_limit=30&sysparm_display_value=true
Demand states reference: | State Value | Label | Description | |-------------|-------|-------------| | -5 | Draft | Initial creation, incomplete | | 1 | New | Submitted, awaiting screening | | 2 | Screening | Under initial assessment | | 3 | Qualified | Approved for further analysis | | 10 | Assessment | Detailed business case review | | 15 | Approved | Approved for funding/execution | | 4 | Closed | Completed or rejected | | 7 | Cancelled | Withdrawn from pipeline |
Query the portfolio to understand investment distribution and remaining budget.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: pm_portfolio
query: state=2
fields: sys_id,number,short_description,state,total_budget,allocated_budget,remaining_budget,portfolio_manager,fiscal_year,strategic_theme
limit: 10
Using REST API:
GET /api/now/table/pm_portfolio?sysparm_query=state=2&sysparm_fields=sys_id,number,short_description,state,total_budget,allocated_budget,remaining_budget,portfolio_manager,fiscal_year,strategic_theme&sysparm_limit=10&sysparm_display_value=true
Query projects within the portfolio for allocation breakdown:
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: pm_project
query: portfolio=[portfolio_sys_id]^stateNOT IN-5,4
fields: sys_id,number,short_description,state,phase,budget_cost,actual_cost,percent_complete,health,priority,end_date,project_manager
limit: 30
Using REST API:
GET /api/now/table/pm_project?sysparm_query=portfolio=[portfolio_sys_id]^stateNOT IN-5,4&sysparm_fields=sys_id,number,short_description,state,phase,budget_cost,actual_cost,percent_complete,health,priority,end_date,project_manager&sysparm_limit=30&sysparm_display_value=true
For agile teams, summarize the sprint planning data including capacity and committed stories.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: rm_sprint
query: release.product.sys_id=[product_sys_id]^state=1
fields: sys_id,number,short_description,start_date,end_date,capacity,story_points,state
limit: 3
Query stories committed to the upcoming sprint:
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: rm_story
query: sprint=[sprint_sys_id]^ORDERBYpriority
fields: sys_id,number,short_description,story_points,state,priority,epic,assigned_to,acceptance_criteria,blocked
limit: 50
Using REST API:
GET /api/now/table/rm_story?sysparm_query=sprint=[sprint_sys_id]^ORDERBYpriority&sysparm_fields=sys_id,number,short_description,story_points,state,priority,epic,assigned_to,acceptance_criteria,blocked&sysparm_limit=50&sysparm_display_value=true
Query the release and its associated features for readiness assessment.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: rm_release
query: product.sys_id=[product_sys_id]^state!=3^ORDERBYstart_date
fields: sys_id,number,short_description,start_date,end_date,state,description
limit: 5
Query stories in the release grouped by completion status:
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: rm_story
query: sprint.release=[release_sys_id]
fields: sys_id,number,short_description,story_points,state,epic,sprint,blocked
limit: 100
Using REST API:
GET /api/now/table/rm_story?sysparm_query=sprint.release=[release_sys_id]&sysparm_fields=sys_id,number,short_description,story_points,state,epic,sprint,blocked&sysparm_limit=100&sysparm_display_value=true
For program-level planning, aggregate across constituent projects.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: pm_project
query: program=[program_sys_id]^stateNOT IN-5,4
fields: sys_id,number,short_description,state,phase,health,percent_complete,schedule_variance,budget_cost,actual_cost,end_date,project_manager,risk
limit: 20
Using REST API:
GET /api/now/table/pm_project?sysparm_query=program=[program_sys_id]^stateNOT IN-5,4&sysparm_fields=sys_id,number,short_description,state,phase,health,percent_complete,schedule_variance,budget_cost,actual_cost,end_date,project_manager,risk&sysparm_limit=20&sysparm_display_value=true
Check active contracts that impact planning timelines or resource availability.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: ast_contract
query: stateNOT IN-5,3,4^end_date>=javascript:gs.nowDateTime()^ORDERBYend_date
fields: sys_id,number,short_description,state,vendor,start_date,end_date,contract_value,renewal_date,contract_type
limit: 15
Using REST API:
GET /api/now/table/ast_contract?sysparm_query=stateNOT IN-5,3,4^end_date>=javascript:gs.nowDateTime()^ORDERBYend_date&sysparm_fields=sys_id,number,short_description,state,vendor,start_date,end_date,contract_value,renewal_date,contract_type&sysparm_limit=15&sysparm_display_value=true
Compile all data into a structured meeting summary:
=== PLANNING MEETING SUMMARY ===
Date: 2026-03-19 | Prepared for: Portfolio Governance Board
DEMAND PIPELINE:
Total Active Demands: 24
New (Awaiting Screening): 8
In Screening: 5
Qualified: 6
In Assessment: 3
Approved (Awaiting Funding): 2
Top Demands by Strategic Score:
1. DMD0045001 - AI-Powered Customer Analytics (Score: 92, Cost: $380K)
2. DMD0045002 - Mobile Self-Service Portal (Score: 88, Cost: $220K)
3. DMD0045003 - Data Center Consolidation (Score: 85, Cost: $1.2M)
Demands by Business Unit:
- Engineering: 9 demands ($2.1M estimated)
- Sales: 7 demands ($890K estimated)
- Operations: 5 demands ($1.4M estimated)
- HR: 3 demands ($340K estimated)
PORTFOLIO STATUS:
Portfolio: FY2026 Technology Investments
Total Budget: $12,000,000
Allocated: $9,400,000 (78.3%)
Remaining: $2,600,000
Active Projects: 14
Health: Green (9) | Yellow (3) | Red (2)
SPRINT PLANNING SUMMARY (Team Alpha):
Sprint: Sprint 2026-04-A (Apr 1-14)
Capacity: 40 story points
Committed: 37 story points (92.5% utilization)
Stories: 12 committed (8 Enhancement, 3 Defect, 1 Spike)
Blocked Stories: 1 (STY0014523 - awaiting API access)
Acceptance Criteria Coverage: 11 of 12 stories (91.7%)
RELEASE READINESS - Release 2.4:
Target Date: 2026-04-30
Total Stories: 48
Complete: 31 (64.6%)
In Progress: 10 (20.8%)
Not Started: 7 (14.6%)
Story Points: 189 total, 121 completed
Risk: MEDIUM - 7 stories unstarted with 6 weeks remaining
KEY DECISIONS NEEDED:
1. Approve DMD0045001 (AI Analytics) - $380K, aligns with Strategy Theme A
2. Determine go/no-go for Release 2.4 on April 30
3. Reallocate $150K from completed PRJ0010038 to underfunded PRJ0010055
RECOMMENDATIONS:
1. [APPROVE] DMD0045001 - Highest strategic score, budget available
2. [DEFER] DMD0045003 - $1.2M exceeds remaining budget, defer to Q3
3. [ESCALATE] 2 Red projects require executive intervention
4. [PLAN] Schedule Release 2.4 go/no-go review for April 15
| Tool | When to Use |
|------|-------------|
| SN-Query-Table | Query demands, projects, sprints, stories, releases, contracts |
| SN-Read-Record | Retrieve a single portfolio, program, or project record |
| SN-NL-Search | Natural language search for planning items (e.g., "find approved demands for engineering") |
| SN-Aggregate | Calculate totals, averages, and counts across planning records |
| Endpoint | Method | Purpose |
|----------|--------|---------|
| /api/now/table/dm_demand | GET | Query demand pipeline and intake records |
| /api/now/table/pm_portfolio | GET | Portfolio budget and investment data |
| /api/now/table/pm_program | GET | Program-level status aggregation |
| /api/now/table/pm_project | GET | Project status and financial data |
| /api/now/table/rm_sprint | GET | Sprint planning and capacity data |
| /api/now/table/rm_story | GET | Story commitment and completion status |
| /api/now/table/rm_release | GET | Release planning and readiness data |
| /api/now/table/ast_contract | GET | Contract timelines and dependencies |
| /api/now/table/planned_task | GET | Planned task data for schedule analysis |
Cause: Custom demand forms may have different field names or additional fields
Solution: Query sys_dictionary with name=dm_demand to discover the actual field names in your instance. Check for custom fields prefixed with u_.
Cause: Not all projects may be linked to the portfolio, or some projects span multiple portfolios
Solution: Verify each project's portfolio field. Also check for demands approved but not yet converted to projects.
Cause: Capacity may need to be manually set or calculated from team member availability
Solution: Check the sprint record's capacity field. If blank, calculate from team availability: number of team members multiplied by average velocity per person.
Cause: Stories may be linked to sprints in the release but not directly to the release itself
Solution: Query stories via sprint.release=[release_sys_id] rather than a direct release field on the story.
Scenario: Prepare a summary for the Q2 portfolio governance board meeting.
Tool: SN-Query-Table
Parameters:
table_name: pm_portfolio
query: short_descriptionLIKEFY2026^state=2
fields: sys_id,number,short_description,total_budget,allocated_budget,remaining_budget,portfolio_manager
limit: 5
Output:
Q2 2026 PORTFOLIO REVIEW
Portfolio: FY2026 Technology Investments
INVESTMENT SUMMARY:
Total Budget: $12.0M | Allocated: $9.4M | Available: $2.6M
Projects Active: 14 | Completing This Quarter: 3 | Starting: 2
QUARTER HIGHLIGHTS:
- 3 projects on track for Q2 completion (PRJ0010038, PRJ0010041, PRJ0010044)
- 2 new projects approved from demand pipeline (DMD0045005, DMD0045008)
- Net budget savings of $340K from completed projects
DEMAND BACKLOG:
- 5 qualified demands awaiting funding ($1.8M total estimated cost)
- 2 high-priority demands can be funded from remaining budget
PROPOSED Q2 ACTIONS:
1. Fund DMD0045001 AI Analytics ($380K from available budget)
2. Defer DMD0045003 Data Center Consolidation to FY2027 planning
3. Reallocate $340K savings to PRJ0010055 API Gateway (currently underfunded)
Tool: SN-Query-Table
Parameters:
table_name: rm_story
query: sprint.short_description=Sprint 2026-04-A^product.sys_id=[product_sys_id]
fields: number,short_description,story_points,state,priority,assigned_to,blocked,acceptance_criteria
limit: 30
Output:
SPRINT PLANNING PRE-READ
Sprint: 2026-04-A (Apr 1-14) | Team: Alpha
Velocity (3-sprint avg): 34 pts | Capacity: 40 pts
PROPOSED COMMITMENT (37 pts):
P1 - Must Have:
STY0014520 - Payment retry logic (8 pts, assigned: Dev A)
STY0014521 - Invoice PDF generation (5 pts, assigned: Dev B)
STY0014522 - Email notification templates (3 pts, assigned: Dev C)
P2 - Should Have:
STY0014523 - Third-party API integration (8 pts, BLOCKED - awaiting access)
STY0014524 - Dashboard widget for sales (5 pts, assigned: Dev A)
STY0014525 - Bulk export functionality (3 pts, assigned: Dev D)
P3 - Nice to Have:
STY0014526 - UI polish for settings page (2 pts, assigned: Dev C)
STY0014527 - Logging improvements (3 pts, assigned: Dev B)
RISKS:
- STY0014523 blocked on vendor API credentials (escalated Mar 15)
- Dev D at 80% capacity due to support rotation
READINESS CHECKLIST:
[YES] All P1 stories have acceptance criteria
[YES] No unresolved dependencies for P1 stories
[NO] STY0014523 still blocked - may need to swap with backlog item
[YES] Team capacity confirmed with all members
spm/agile-story-generation - Generate user stories from requirementsspm/acceptance-criteria - Write acceptance criteria for storiesspm/project-insights - Project health and performance metricsspm/feedback-summarization - Retrospective and feedback analysisreporting/executive-dashboard - Build executive dashboardstesting
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