用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/dandye/adk_runbooks --skill create-investigation-report命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | create-investigation-report |
| description | Use when compiling comprehensive incident investigation findings and executive summaries. |
| category | reporting |
| version | 1.0.0 |
| type | Skill |
| title | Skill: Create Investigation Report |
| generated | {"by":"process:google-labs-jules","at":"2026-08-20T02:00:00Z"} |
Consolidate findings from a completed or ongoing investigation involving various security tools (e.g., SecOps SIEM/SOAR, GTI, SCC, Okta, Crowdstrike) into a comprehensive report suitable for stakeholders or post-incident review. This runbook focuses on the reporting process itself, assuming the core investigation steps have largely been completed.
${CASE_ID} (Mandatory): The SOAR case ID for which the report is being generated.${ALERT_GROUP_IDENTIFIERS}: Relevant alert group identifiers if needed for specific SOAR actions.${INVESTIGATION_SUMMARY}: Pre-existing summary of findings if available.${KEY_ENTITIES}: List of key entities (users, hosts, IOCs) that were the focus of the investigation.${INCLUDE_TOOLS}: List of tools whose findings should be summarized (e.g., ["SIEM", "GTI", "Okta"]).${REPORT_FILENAME_SUFFIX}: A suffix for the report filename (defaults to ${CASE_ID}).Required for Reporting Workflow:
secops-soar: get_case_full_details, post_case_commentwrite_reportSummarized From (Examples - Actual tools depend on the investigation):
secops-mcp: lookup_entity, search_security_eventsgti-mcp: Various get_*_report toolsscc-mcp: search_scc_findingsokta-mcp: lookup_okta_usercrowdstrike-mcp: get_host_detailsConceptual/Optional (Availability Varies):
secops-soar: siemplify_add_attachment_to_case (or similar attachment tool)google-drive-mcp: upload_to_drivegcs-mcp: upload_to_gcs${CASE_ID} using soar-mcp_get_case_full_details. Extract relevant alerts, comments, existing entities, priority/status, and explicitly identify the key entities/IOCs that are central to the investigation based on this initial context.${INVESTIGATION_SUMMARY}, ${KEY_ENTITIES}, ${INCLUDE_TOOLS}). Review case comments and alert details to reconstruct the investigation narrative and key findings.
rules-bank/reporting_templates.md and rules-bank/run_books/guidelines/runbook_guidelines.md. Key sections should include: Executive Summary, Investigation Timeline (high-level), Involved Entities & Enrichment Summary, Analysis/Root Cause (if determined), Actions Taken (summary), Recommendations/Lessons Learned.${FINAL_REPORT_CONTENT}).${REPORT_NAME} (e.g., investigation_report_${CASE_ID}.md or investigation_report_${REPORT_FILENAME_SUFFIX}.md if provided, ensuring a extension). Execute with and . Obtain and .graph TD
START(["START"]) --> extract_report_payload_node["1. extract_report_payload_node<br/><i>(Extract Report Payload)</i>"]
extract_report_payload_node --> fetch_soar_case_details_node["2. fetch_soar_case_details_node<br/><i>(Fetch SOAR Case Details & Severity)</i>"]
fetch_soar_case_details_node --> report_type_router{"3. report_type_router<br/><i>(Event.actions.route)</i>"}
report_type_router -- "EXECUTIVE_SUMMARY" --> handle_executive_summary_branch["4a. handle_executive_summary_branch<br/><i>(Generate Executive Report)</i>"]
report_type_router -- "DETAILED_TECHNICAL" --> handle_detailed_technical_branch["4b. handle_detailed_technical_branch<br/><i>(Generate Technical Report)</i>"]
handle_executive_summary_branch --> document_final_report_node["5. document_final_report_node<br/><i>(SOAR Comment & Report Summary)</i>"]
handle_detailed_technical_branch --> document_final_report_node
sequenceDiagram
participant User
participant AutomatedAgent as Automated Agent (MCP Client)
participant SOAR as secops-soar
participant SIEM as secops-mcp
participant GTI as gti-mcp
participant SCC as scc-mcp
participant Okta as okta-mcp
participant CS as crowdstrike-mcp
participant Drive as google-drive-mcp
participant GCS as gcs-mcp
User->>AutomatedAgent: Request Investigation Report for Case X
AutomatedAgent->>SOAR: list_alerts_by_case(case_id=X)
SOAR-->>AutomatedAgent: Alerts for Case X (containing entities E1, E2...)
loop For each relevant Entity Ei
AutomatedAgent->>SIEM: lookup_entity(entity_value=Ei)
SIEM-->>AutomatedAgent: SIEM context for Ei
AutomatedAgent->>GTI: get_file_report/get_domain_report(entity=Ei)
GTI-->>AutomatedAgent: GTI context for Ei
AutomatedAgent->>SCC: search_scc_findings(query=Ei)
SCC-->>AutomatedAgent: SCC findings for Ei
AutomatedAgent->>Okta: lookup_okta_user(user=Ei)
Okta-->>AutomatedAgent: Okta user details for Ei
AutomatedAgent->>CS: get_host_details(host=Ei)
CS-->>AutomatedAgent: CrowdStrike host details for Ei
end
Note over AutomatedAgent: Synthesize findings, redact/defang sensitive data (FINAL_REPORT_CONTENT)
Note over AutomatedAgent: Construct REPORT_NAME (e.g., investigation_report_case_X.md)
AutomatedAgent->>GenerateReportFile: skills/common/generate-report-file/SKILL.md(REPORT_CONTENTS=FINAL_REPORT_CONTENT, REPORT_NAME=REPORT_NAME)
GenerateReportFile-->>AutomatedAgent: REPORT_FILE_PATH, WRITE_STATUS
Note over AutomatedAgent: Report created locally at REPORT_FILE_PATH
AutomatedAgent->>SOAR: siemplify_add_attachment_to_case(case_id=X, file_path=REPORT_FILE_PATH)
SOAR-->>AutomatedAgent: Attachment confirmation
AutomatedAgent->>User: Confirm: "Upload redacted report to Drive/GCS? (Yes, Drive/Yes, GCS/No)"
User->>AutomatedAgent: Response (e.g., "Yes, Drive")
alt Upload Confirmed
alt Upload to Drive
AutomatedAgent->>Drive: upload_to_drive(file_path="investigation_report_case_X.md", destination="Reports Folder")
Drive-->>AutomatedAgent: Drive upload confirmation
else Upload to GCS
AutomatedAgent->>GCS: upload_to_gcs(file_path="investigation_report_case_X.md", bucket="security-reports", object_name="case_X_report.md")
GCS-->>AutomatedAgent: GCS upload confirmation
end
end
AutomatedAgent->>AutomatedAgent: attempt_completion(result="Investigation report created, attached to Case X, and optionally uploaded.")
Investigation findings synthesized, report structured according to guidelines, content reviewed/redacted by analyst, report file generated locally, and SOAR case updated with attachment status or fallback comment. Optional external upload handled if requested and possible.
The following rubric is used to evaluate the execution of this Reporting runbook by an LLM agent.
| Criteria | Points | Description |
|---|---|---|
| Data Collection | 25 | Gathered all necessary data points and metrics for the report. |
| Report Generation | 30 | Generated the report in the correct format with accurate content. |
| Quality & Clarity | 15 | Ensure the report is readable, well-structured, and error-free. |
| Delivery | 15 | Delivered or saved the report to the correct location/recipient. |
| Operational Artifacts | 15 | Produced required artifacts: Sequence diagram, execution metadata (date/cost), and summary. |
.mdskills/common/generate-report-file/SKILL.mdREPORT_CONTENTS=${FINAL_REPORT_CONTENT}REPORT_NAME=${REPORT_NAME}${REPORT_FILE_PATH}${WRITE_STATUS}siemplify_add_attachment_to_case or similar tool exists) Attempt to attach the generated file (${REPORT_FILE_PATH}) to the SOAR case ${CASE_ID}.skills/common/document-in-soar/SKILL.md with ${CASE_ID} and COMMENT_TEXT="Investigation report generated: ${REPORT_FILE_PATH}. Attachment failed or not available. Summary: [Include brief summary here].". Obtain ${COMMENT_POST_STATUS}.skills/common/document-in-soar/SKILL.md with ${CASE_ID} and COMMENT_TEXT="Investigation report attached successfully: ${REPORT_FILE_PATH}.". Obtain ${COMMENT_POST_STATUS}.${REPORT_FILE_PATH}) to Google Drive or GCS?". Options: ["Yes, Drive", "Yes, GCS", "No"]. Obtain ${UPLOAD_CHOICE}.${UPLOAD_CHOICE} is "Yes, Drive" (and Drive tool exists): Execute google-drive-mcp.upload_to_drive with ${REPORT_FILE_PATH}.${UPLOAD_CHOICE} is "Yes, GCS" (and GCS tool exists): Execute gcs-mcp.upload_to_gcs with ${REPORT_FILE_PATH}.skills/common/document-in-soar/SKILL.md.