| name | mfa-servicenow-skills |
| version | 2.0.0 |
| author | jshsakura |
| description | Portal-specialized ServiceNow skills — LLM execution blueprints with safety gates, sub-agent delegation, and context optimization |
MFA ServiceNow Skills
Execution blueprints for AI agents working with ServiceNow portals. Not documentation — these are pipelines with mandatory safety gates, sub-agent delegation hints, and exact tool calls.
Why Skills (vs raw tools)
| Tools Only | Skills + Tools |
|---|
| Safety | LLM decides (운빨) | Gates enforced (diff→preview→confirm→apply) |
| Tokens | Source dumps in context | Delegate to sub-agent, summary only |
| Accuracy | LLM guesses tool order | Verified pipeline |
| Recovery | Might forget | diff_local_component before push + server-side version history |
Skill Metadata
context_cost: low|medium|high
safety_level: none|confirm|staged
delegatable: true|false
required_input: what user must provide
output: summary|report|diff|data|status|files|action|diagnosis
Dry-Run Preview (write tools, v1.8.22+)
All mutating tools (update_, delete_, add_, remove_, reorder_*) accept
dry_run=True. When set, the tool issues only read-only Table/Aggregate API
calls and returns a structured preview — no side effects. Shape:
{
"dry_run": true,
"operation": "update"|"delete"|...,
"target": {"table": "...", "sys_id": "..."},
"target_found": bool,
"proposed_changes": {"field": {"before": x, "after": y}}, # update
"no_op_fields": [...], # update
"dependencies": {"activities": N, "versions": N}, # delete
"warnings": [...],
"precision_notes": {"count_source": "table_api", ...}
}
Recommended flow for any write: dry_run=True → show diff → confirm=approve.
Works under every auth type (basic/OAuth/API key/browser) — read-only APIs only.
Cross-Scope Dep Auto-Resolve (v1.8.21+)
download_app_sources(auto_resolve_deps=True) (default) scans downloaded
sources and pulls referenced cross-scope records from global/other scopes:
- Script Includes —
new X(), gs.include('X'), new GlideAjax('X')
- Widgets —
<sp-widget id="X">, $sp.getWidget('X')
- Angular Providers —
$inject, angular.module(..., [...])
- UI Macros —
<g:macro> / <g2:macro> Jelly tags (excl. builtins)
Pulled records are saved into the same scope tree with is_dependency: true
in _metadata.json. Business rules / client scripts / UI actions are not
auto-resolved (table-bound, not referenced by name from code).
Skill Index
Kept deliberately lean: only general, cross-tool playbooks remain. Single-tool
wrappers and feature-specific pipelines were dropped — tool descriptions and the
tools' own built-in safety gates cover those. Enforcement lives in the tools,
not in skills (skills are advisory; they can't be forced).
analyze/ — Understand before you touch
| Skill | Cost | Delegatable | Trigger Examples |
|---|
| local-source-audit | low | yes | "로컬 검수", "dead code", "cross reference" |
manage/ — CRUD and operations
explore/ — Discover and navigate
| Skill | Cost | Delegatable | Trigger Examples |
|---|
| flow-trigger-tracing | medium | yes | "트리거 추적", "what runs on this table" |
Workflow Chains
Offline Analysis Pipeline
manage/app-source-download → analyze/local-source-audit → (review HTML report)
Local Edit Pipeline
manage/app-source-download → (edit locally) → manage/local-sync