incident.ioのインシデント(問題発生時の対応記録)の読み取りと変更を行います。ステータス、重大度、役割、フィールド、更新内容、チャネルメッセージ、AI調査などを扱います。 インシデント関連のあらゆる作業—単なる読み取りや変更であっても—に使用してください。最初のインシデント操作、更新、フォローアップ、または調査ツール呼び出しの前に読み込んでください。組織のルールに基づいた変更を受け付けたうえで却下されるケースもあり、このスキルはまず何を確認すべきかを示します。 **使用対象外:** - 組織全体の統計情報 - 対応手順書(マニュアル) - 当番スケジュール管理
Reading and changing incidents in incident.io: status, severity, roles, fields, updates, channel messages and the AI investigation. Use whenever you're working with an incident in any way, even a single read or change. Load it before the first incident, update, follow-up or investigation tool call: the tools accept changes the organisation's rules then reject, and this skill says what to check first. Not for fleet-wide statistics, runbooks or who is on call.
An incident is how incident.io tracks one thing going wrong: a reference (INC-123), a status, a severity, the people responding, and a channel where the response happens.
The ground rules and the incident model are here. The rules the tools enforce, the responder judgement and the writing craft are in the reference files: read the matching reference before acting, every time.
references/reading.md first. It says how to read just what the task needs, and which
lists truncate.references/lifecycle.md first. The tools reject transitions for reasons it explains
(accept needs a type in the same call; triage can't be resolved, paused, or canceled;
resolving can demand custom fields), and every rejected or repeated call is visible
noise in the channel.references/responding.md first. It
carries the duplicate check.on-call skill owns paging and its safety rules; load it before an escalation tool.references/responding.md first. It says when a remark is a steer
the investigation needs fed in and when it is just a question to answer.references/writing.md before drafting a word. It says what to lead with, what
never to restate, and how to keep your analysis labelled as theory.A task that spans jobs reads each matching reference — "accept this and post an update" is lifecycle.md then writing.md. Read the whole file, not a grep of it.
You're working outside the incident channel, in a coding agent or a chat app, through the incident.io plugin, the incident.io MCP server on its own, or the incident.io desktop app. Below, "the plugin" also means the MCP server on its own, since it has the same tools. You can't read the channel's messages, and what the user finds and changes here reaches neither the channel nor the investigation unless it's shared in words.
The organisation's configuration is the config://organisation resource from the incident.io
tools (resource_show with that URI where the session can't read resources). incident_pin,
escalations_list, identity_get, investigation_list, investigation_read and setup
come only with the incident.io desktop app: where one is missing they're on the plugin, so say
what they'd need rather than calling it a limit of their organisation.
A call can fail for a reason that isn't the incident: the desktop app isn't running, they're
signed out, or the incident.io MCP server isn't set up in this session. Stop, say which in one
line with the fix ("open the incident.io desktop app and ask again"; "sign in again in the
app, then reconnect the incident.io server"), and point to the doctor skill for anything
more. Never report it as the incident not existing, and don't carry on by guessing.
incident_show returns the record (status, severity, roles, summary, the five most recent
updates) and leaves out the investigation and the postmortem unless you include them;
including updates returns every update, so it needs no incident_update_list after it. An
AI investigation's full record is a set of files:
references/reading.md says how to get them and what to read first.
Work out which incident they mean before anything else:
incident_pin, call it with no
arguments first. It returns the pinned incident's number only, so look it up with
incident_show before you name it. With nothing pinned, or no incident_pin, list the
user's incidents that aren't resolved (incident_list with assigned_to: ["me"] and
status_category triage, active and paused), saying which are paused (on hold) or in
triage (unconfirmed). With one, use it and say how you know ("you're the lead on the only
incident you're in that isn't resolved"). With several, list them (reference, name,
status, their role) and ask. Never take the organisation's newest incident.on-call skill's, and many
have no incident. Once they've picked one that has, its incident is this skill's.incident_pin(incident_id: …) makes it the incident later asks resolve to; unset: true
clears it and deletes its downloaded investigation files. Pinning doesn't add anyone to the
incident or give them a role. On the plugin there is no pin, so say so and carry the
reference yourself for the rest of the session.Hanging off it: alerts (may have triggered it), escalations (pages sent to people), updates (the running narrative), actions (work to fix it now) versus follow-ups (work for after), an optional AI investigation, and a postmortem.
The lifecycle, as a map (the enforced rules live in lifecycle.md):
┌─────────┐
accept │ triage │──decline──→ declined ─(undecline)─→ triage
┌───(needs type)─────┤ │──merge────→ merged ──(unmerge only)
▼ └─────────┘
┌───────────┐
│ active │──pause──→ paused ──(resume)──→ active
│ (the org's│──cancel──→ canceled (terminal)
│ statuses) │──resolve─→ post-incident ──→ closed
└───────────┘──close───────────────────────→ closed
▲ │
└───────────────── reopen ────────────────┘
An incident's mode says what kind of incident it is, and each one behaves differently:
/inc stream in Slack or from the dashboard; nothing you can call starts one, so its
absence doesn't mean streams aren't enabled. A parent with open streams
can't be closed, merged, declined or canceled until they're closed (lifecycle.md
covers working in one). incident_show gives a stream's parent and a parent's
streams. A private stream's name, status and lead are shown to everyone in its
parent, but nothing else about it: name it, don't guess at what it holds.Its visibility is public or private — and a private incident you can't see comes back as not found, not forbidden. If a lookup that should exist returns nothing, say it may be private and point the user to the dashboard rather than probing.
These apply to every job:
Read the org's configuration before your first write (config://organisation; the
section above says how). It carries this organisation's statuses with their categories,
severities, roles, incident types, custom fields and timestamps — plus who you
are, so "my incidents" resolves. Every org renames the lifecycle, so a status name
from this skill is wrong somewhere; reason in categories, act with this org's own
values, and never guess an ID.
Resolve custom-field values before setting them. A field's option values are
listed in config://organisation; a catalog-typed field takes a catalog entry's id,
which you look up with the catalog reads — pass the id, never the name. custom_field_values does both
in one call, whatever the field's type, and names the key its id goes in.
A write can be rejected for missing required fields. Some custom fields are
required only before resolving, others on every change (a field required "always"
blocks any accept, update, or resolve while it's empty). When the tool rejects an
update for missing fields it names them — set those in the same call, filling them
from context rather than asking the user field by field. A declare is different:
when incident_create is rejected with a prefilled declare-form link, hand that
link to the user — don't retry with guessed values, and don't resolve the missing
fields yourself; the form is where they finish it.
A requested change is yours to make, not to propose. When the person has asked
for the change, said what it should be, and you can tell which record they mean,
make it and report what you did — don't ask them to confirm first; "declare an
incident for this" already is the go-ahead. When they asked for the change but not
what it should be ("set the incident type", "update pls"), don't ask either: fill
sensible values from context and pass action: suggest, so the card is where they
correct you (writing.md says how). Ask first only when you can't tell which record
they mean, or when the change would destroy work they haven't pointed at — removing
the one record they named is theirs to ask for, not yours to double-check. Paging is
the one exception, and the on-call skill owns it: a page defaults to a draft.
Three states turn a write into something else, so ask before these, even when asked: resolving a triage incident declines it; a follow-up that matches an existing one is a duplicate, so point at it; an update saying it's resolved, on an incident that's still active, needs the status question answered first. Don't count on the tool to reject them.
Never invent a severity. Only set one that has been explicitly stated — severity drives paging and escalation policy, so a guessed "sev2" can wake people a real triage would not have. With no severity given, leave the incident in triage for a responder to set.
A missing tool or option is this organisation's configuration. Tools and options appear only where the organisation has the feature enabled: streams, test and retrospective modes, paging and others. When one you need isn't there, check that this skill says the capability exists, never going on what the user says exists. If it does, tell the user it isn't enabled for this organisation and point them to the dashboard; if the skill doesn't name it, say you can't do it. Either way, never make a different change as a stand-in: no standard incident for a test or a past outage, no separate incident for a stream, no new private incident to change visibility. A tool that only some sessions have, and a call that fails for a reason that isn't the incident, are covered under "How you reach the incident".
An empty search isn't proof it isn't there. A merged incident lives on in the
incident it was merged into, and a default incident_list search leaves merged
incidents out: search the merged category too and follow merged_into to the live
incident. A follow-up the user names that follow_up_list doesn't return may be a
pending suggestion: check suggestion_list before saying it doesn't exist.
A claim about how the platform behaves needs a source. Who gets paged, who can see an incident, what can't be undone: say it as a tool returned it or this skill states it, and leave it out rather than guess.
playbook://analysis), which own the methodology;
route fleet-wide questions there rather than paginating incident_list and counting
by hand.runbooks skill. Ground an incident here, hand over there.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。