@autohq/cli 0.1.378 → 0.1.379
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-bridge.js +264 -2
- package/dist/index.js +264 -2
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -23492,7 +23492,7 @@ Object.assign(lookup, {
|
|
|
23492
23492
|
// package.json
|
|
23493
23493
|
var package_default = {
|
|
23494
23494
|
name: "@autohq/cli",
|
|
23495
|
-
version: "0.1.
|
|
23495
|
+
version: "0.1.379",
|
|
23496
23496
|
license: "SEE LICENSE IN README.md",
|
|
23497
23497
|
publishConfig: {
|
|
23498
23498
|
access: "public"
|
|
@@ -31868,6 +31868,268 @@ triggers:
|
|
|
31868
31868
|
content: "harness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
31869
31869
|
}
|
|
31870
31870
|
]
|
|
31871
|
+
},
|
|
31872
|
+
{
|
|
31873
|
+
version: "1.3.0",
|
|
31874
|
+
files: [
|
|
31875
|
+
{
|
|
31876
|
+
path: "agents/incident-response-slack.yaml",
|
|
31877
|
+
content: `imports:
|
|
31878
|
+
- ./incident-response.yaml
|
|
31879
|
+
systemPrompt: |
|
|
31880
|
+
You are the incident response agent for {{ $repoFullName }}. When an alert
|
|
31881
|
+
arrives, your job is fast, evidence-based triage \u2014 not heroics.
|
|
31882
|
+
|
|
31883
|
+
Investigation protocol:
|
|
31884
|
+
- Read the alert payload carefully; identify the affected service and
|
|
31885
|
+
the symptom.
|
|
31886
|
+
- Correlate with recent change: inspect the last day of commits on main
|
|
31887
|
+
in the mounted checkout (git log) and look for changes touching the
|
|
31888
|
+
affected area.
|
|
31889
|
+
- When an observability tool is available, pull the relevant logs,
|
|
31890
|
+
monitors, or metrics for the alert window before speculating.
|
|
31891
|
+
- Form a hypothesis with explicit confidence: likely cause, supporting
|
|
31892
|
+
evidence, and what would confirm or refute it.
|
|
31893
|
+
|
|
31894
|
+
Reporting protocol (Slack {{ $slackChannel }}):
|
|
31895
|
+
- Slack renders mrkdwn links: <https://url|text>.
|
|
31896
|
+
- Post one top-level message: severity, service, one-line symptom, and
|
|
31897
|
+
the alert link.
|
|
31898
|
+
- Thread the full triage under it: timeline, suspected cause with
|
|
31899
|
+
evidence, suggested next steps, and what you ruled out.
|
|
31900
|
+
- After your first reply, call auto.chat.subscribe for the thread so
|
|
31901
|
+
responder questions route back to you. Answer follow-ups in the same
|
|
31902
|
+
thread with the same evidence discipline.
|
|
31903
|
+
|
|
31904
|
+
Fix protocol (serve the fix on a platter):
|
|
31905
|
+
- When the evidence points at a specific code change with a clear,
|
|
31906
|
+
contained fix \u2014 a bad commit to revert, a config value to correct, a
|
|
31907
|
+
small patch \u2014 prepare it: create a focused branch from main in the
|
|
31908
|
+
mounted checkout, implement the minimal fix, push the branch, and open
|
|
31909
|
+
a draft pull request with create_pull_request.
|
|
31910
|
+
- The PR body states the hypothesis the fix encodes with its evidence
|
|
31911
|
+
and says how to verify it. Post the PR link in the incident thread.
|
|
31912
|
+
- Keep the fix minimal and reversible; run the repo's relevant checks
|
|
31913
|
+
when the environment allows and report what you ran. Never force a fix:
|
|
31914
|
+
when the cause is uncertain or the change would sprawl, the triage with
|
|
31915
|
+
suggested next steps is a complete deliverable on its own.
|
|
31916
|
+
|
|
31917
|
+
Hard limits: your only writes are the incident thread and the draft fix
|
|
31918
|
+
PR. Do not merge the PR, push to main, restart services, mutate
|
|
31919
|
+
infrastructure, or declare an incident resolved \u2014 humans review the fix
|
|
31920
|
+
and decide that. If the evidence is thin, say so plainly rather than
|
|
31921
|
+
manufacturing a conclusion.
|
|
31922
|
+
initialPrompt: |
|
|
31923
|
+
A production alert arrived.
|
|
31924
|
+
|
|
31925
|
+
Alert:
|
|
31926
|
+
- Title: {{title}}
|
|
31927
|
+
- Severity: {{severity}}
|
|
31928
|
+
- Service: {{service}}
|
|
31929
|
+
- Description: {{description}}
|
|
31930
|
+
- Link: {{link}}
|
|
31931
|
+
|
|
31932
|
+
Investigate following your responder instructions, then post the triage
|
|
31933
|
+
to Slack {{ $slackChannel }} and subscribe to the thread for follow-ups.
|
|
31934
|
+
If the evidence points at a clear, contained code fix, also open a draft
|
|
31935
|
+
fix PR and post the link in the thread.
|
|
31936
|
+
# The Slack variant triages in the channel, not on a GitHub issue: narrow the
|
|
31937
|
+
# base's GitHub tooling to the pull-request surface and drop the issue grant.
|
|
31938
|
+
tools:
|
|
31939
|
+
chat:
|
|
31940
|
+
kind: local
|
|
31941
|
+
implementation: chat
|
|
31942
|
+
auth:
|
|
31943
|
+
kind: connection
|
|
31944
|
+
provider: slack
|
|
31945
|
+
connection: "{{ $slackConnection }}"
|
|
31946
|
+
github:
|
|
31947
|
+
kind: github
|
|
31948
|
+
tools:
|
|
31949
|
+
- pull_request_read
|
|
31950
|
+
- create_pull_request
|
|
31951
|
+
- update_pull_request
|
|
31952
|
+
mounts:
|
|
31953
|
+
- kind: git
|
|
31954
|
+
repository: "{{ $repoFullName }}"
|
|
31955
|
+
mountPath: /workspace/repo
|
|
31956
|
+
ref: main
|
|
31957
|
+
depth: 100
|
|
31958
|
+
auth:
|
|
31959
|
+
kind: githubApp
|
|
31960
|
+
capabilities:
|
|
31961
|
+
contents: write
|
|
31962
|
+
pullRequests: write
|
|
31963
|
+
issues: none
|
|
31964
|
+
checks: read
|
|
31965
|
+
actions: read
|
|
31966
|
+
triggers:
|
|
31967
|
+
- name: mention
|
|
31968
|
+
event: chat.message.mentioned
|
|
31969
|
+
connection: "{{ $slackConnection }}"
|
|
31970
|
+
where:
|
|
31971
|
+
$.chat.provider: slack
|
|
31972
|
+
$.auto.authored: false
|
|
31973
|
+
$.auto.attributions:
|
|
31974
|
+
exists: false
|
|
31975
|
+
message: |
|
|
31976
|
+
{{message.author.userName}} mentioned you on Slack:
|
|
31977
|
+
|
|
31978
|
+
{{message.text}}
|
|
31979
|
+
|
|
31980
|
+
Channel: {{chat.channelId}}
|
|
31981
|
+
Thread: {{chat.threadId}}
|
|
31982
|
+
|
|
31983
|
+
Reply in that thread with chat.send. If the user provides alert details
|
|
31984
|
+
or clearly asks for an incident investigation, handle it. If required
|
|
31985
|
+
context is missing, ask for the alert details. Otherwise, briefly explain
|
|
31986
|
+
that you investigate production alerts, post triage to {{ $slackChannel }},
|
|
31987
|
+
open a draft fix PR when the cause is clear, and answer follow-up
|
|
31988
|
+
questions in the incident thread.
|
|
31989
|
+
routing:
|
|
31990
|
+
kind: spawn
|
|
31991
|
+
- name: thread-reply
|
|
31992
|
+
events:
|
|
31993
|
+
- chat.message.mentioned
|
|
31994
|
+
- chat.message.subscribed
|
|
31995
|
+
connection: "{{ $slackConnection }}"
|
|
31996
|
+
where:
|
|
31997
|
+
$.chat.provider: slack
|
|
31998
|
+
$.auto.authored: false
|
|
31999
|
+
$.auto.attributions:
|
|
32000
|
+
exists: true
|
|
32001
|
+
message: |
|
|
32002
|
+
{{message.author.userName}} replied in your incident thread:
|
|
32003
|
+
|
|
32004
|
+
{{message.text}}
|
|
32005
|
+
|
|
32006
|
+
Channel: {{chat.channelId}}
|
|
32007
|
+
Thread: {{chat.threadId}}
|
|
32008
|
+
|
|
32009
|
+
Answer in that thread with chat.send, keeping the evidence discipline
|
|
32010
|
+
from your instructions.
|
|
32011
|
+
routing:
|
|
32012
|
+
kind: deliver
|
|
32013
|
+
routeBy:
|
|
32014
|
+
kind: attributedSessions
|
|
32015
|
+
onUnmatched: drop
|
|
32016
|
+
`
|
|
32017
|
+
},
|
|
32018
|
+
{
|
|
32019
|
+
path: "agents/incident-response.yaml",
|
|
32020
|
+
content: `name: incident-response
|
|
32021
|
+
model:
|
|
32022
|
+
provider: anthropic
|
|
32023
|
+
id: claude-opus-4-8
|
|
32024
|
+
identity:
|
|
32025
|
+
displayName: Incident Response
|
|
32026
|
+
username: incident-response
|
|
32027
|
+
avatar:
|
|
32028
|
+
asset: .auto/assets/sentinel.png
|
|
32029
|
+
sha256: 8b8c15db5c65b19fcd81a856cc6b4c56cb64a2b6b473eedcf7159ee0e07f55ec
|
|
32030
|
+
description: First responder for production alerts - posts an evidence-based triage issue and drafts a fix PR when the cause is clear.
|
|
32031
|
+
imports:
|
|
32032
|
+
- ../fragments/environments/agent-runtime.yaml
|
|
32033
|
+
systemPrompt: |
|
|
32034
|
+
You are the incident response agent for {{ $repoFullName }}. When an alert
|
|
32035
|
+
arrives, your job is fast, evidence-based triage \u2014 not heroics.
|
|
32036
|
+
|
|
32037
|
+
Investigation protocol:
|
|
32038
|
+
- Read the alert payload carefully; identify the affected service and
|
|
32039
|
+
the symptom.
|
|
32040
|
+
- Correlate with recent change: inspect the last day of commits on main
|
|
32041
|
+
in the mounted checkout (git log) and look for changes touching the
|
|
32042
|
+
affected area.
|
|
32043
|
+
- When an observability tool is available, pull the relevant logs,
|
|
32044
|
+
monitors, or metrics for the alert window before speculating.
|
|
32045
|
+
- Form a hypothesis with explicit confidence: likely cause, supporting
|
|
32046
|
+
evidence, and what would confirm or refute it.
|
|
32047
|
+
|
|
32048
|
+
Reporting protocol (GitHub issues):
|
|
32049
|
+
- Create one GitHub issue for the incident with the issue_write tool:
|
|
32050
|
+
the title is "[severity] service: one-line symptom", and the body
|
|
32051
|
+
opens with the alert link, then the full triage \u2014 timeline, suspected
|
|
32052
|
+
cause with evidence, suggested next steps, and what you ruled out.
|
|
32053
|
+
- If material findings arrive after the issue exists, add them with
|
|
32054
|
+
add_issue_comment rather than rewriting the body, so the record stays
|
|
32055
|
+
chronological.
|
|
32056
|
+
|
|
32057
|
+
Fix protocol (serve the fix on a platter):
|
|
32058
|
+
- When the evidence points at a specific code change with a clear,
|
|
32059
|
+
contained fix \u2014 a bad commit to revert, a config value to correct, a
|
|
32060
|
+
small patch \u2014 prepare it: create a focused branch from main in the
|
|
32061
|
+
mounted checkout, implement the minimal fix, push the branch, and open
|
|
32062
|
+
a draft pull request with create_pull_request.
|
|
32063
|
+
- The PR body links the incident issue, states the hypothesis the fix
|
|
32064
|
+
encodes with its evidence, and says how to verify it. Link the PR from
|
|
32065
|
+
the incident issue with add_issue_comment.
|
|
32066
|
+
- Keep the fix minimal and reversible; run the repo's relevant checks
|
|
32067
|
+
when the environment allows and report what you ran. Never force a fix:
|
|
32068
|
+
when the cause is uncertain or the change would sprawl, the triage with
|
|
32069
|
+
suggested next steps is a complete deliverable on its own.
|
|
32070
|
+
|
|
32071
|
+
Hard limits: your only writes are the incident issue and the draft fix
|
|
32072
|
+
PR. Do not merge the PR, push to main, restart services, mutate
|
|
32073
|
+
infrastructure, or declare an incident resolved \u2014 humans review the fix
|
|
32074
|
+
and decide that. If the evidence is thin, say so plainly rather than
|
|
32075
|
+
manufacturing a conclusion.
|
|
32076
|
+
initialPrompt: |
|
|
32077
|
+
A production alert arrived.
|
|
32078
|
+
|
|
32079
|
+
Alert:
|
|
32080
|
+
- Title: {{title}}
|
|
32081
|
+
- Severity: {{severity}}
|
|
32082
|
+
- Service: {{service}}
|
|
32083
|
+
- Description: {{description}}
|
|
32084
|
+
- Link: {{link}}
|
|
32085
|
+
|
|
32086
|
+
Investigate following your responder instructions, then create the GitHub
|
|
32087
|
+
incident issue with your triage. If the evidence points at a clear,
|
|
32088
|
+
contained code fix, also open a draft fix PR and link it from the issue.
|
|
32089
|
+
mounts:
|
|
32090
|
+
- kind: git
|
|
32091
|
+
repository: "{{ $repoFullName }}"
|
|
32092
|
+
mountPath: /workspace/repo
|
|
32093
|
+
ref: main
|
|
32094
|
+
depth: 100
|
|
32095
|
+
auth:
|
|
32096
|
+
kind: githubApp
|
|
32097
|
+
capabilities:
|
|
32098
|
+
contents: write
|
|
32099
|
+
pullRequests: write
|
|
32100
|
+
issues: write
|
|
32101
|
+
checks: read
|
|
32102
|
+
actions: read
|
|
32103
|
+
workingDirectory: /workspace/repo
|
|
32104
|
+
tools:
|
|
32105
|
+
auto:
|
|
32106
|
+
kind: local
|
|
32107
|
+
implementation: auto
|
|
32108
|
+
github:
|
|
32109
|
+
kind: github
|
|
32110
|
+
tools:
|
|
32111
|
+
- issue_read
|
|
32112
|
+
- issue_write
|
|
32113
|
+
- add_issue_comment
|
|
32114
|
+
- pull_request_read
|
|
32115
|
+
- create_pull_request
|
|
32116
|
+
- update_pull_request
|
|
32117
|
+
triggers:
|
|
32118
|
+
- name: incident-webhook
|
|
32119
|
+
event: webhook.incident.opened
|
|
32120
|
+
endpoint: incident-webhook
|
|
32121
|
+
auth:
|
|
32122
|
+
kind: bearer_token
|
|
32123
|
+
secretRef: incident-webhook-secret
|
|
32124
|
+
routing:
|
|
32125
|
+
kind: spawn
|
|
32126
|
+
`
|
|
32127
|
+
},
|
|
32128
|
+
{
|
|
32129
|
+
path: "fragments/environments/agent-runtime.yaml",
|
|
32130
|
+
content: "harness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
32131
|
+
}
|
|
32132
|
+
]
|
|
31871
32133
|
}
|
|
31872
32134
|
],
|
|
31873
32135
|
"@auto/issue-triage": [
|
|
@@ -37433,7 +37695,7 @@ var TEMPLATE_DESCRIPTIONS = {
|
|
|
37433
37695
|
"@auto/code-review": "A pull-request reviewer that posts one severity-ranked review comment and reports a check; a -slack entrypoint adds Slack verdicts.",
|
|
37434
37696
|
"@auto/daily-digest": "A scheduled read-only analyst that posts a daily shipped-code digest to a tracking issue; a -slack entrypoint posts to Slack instead.",
|
|
37435
37697
|
"@auto/handoff": "A handoff coder that takes ownership of delegated PRs or coding tasks and reports back when ready.",
|
|
37436
|
-
"@auto/incident-response": "A first responder for production alerts: investigates, posts a triage issue, and
|
|
37698
|
+
"@auto/incident-response": "A first responder for production alerts: investigates, posts a triage issue, and opens a draft fix PR when the cause is clear; -slack entrypoint for channel triage.",
|
|
37437
37699
|
"@auto/issue-triage": "Linear issue triage plus an implementation coder: label-driven triage handoffs that become focused PRs.",
|
|
37438
37700
|
"@auto/lead-engine": "An inbound-lead researcher that scores fit and drafts outreach for human approval; -slack entrypoint for a sales-channel flow.",
|
|
37439
37701
|
"@auto/onboarding": "Auto's house onboarding guidance, importable as a managed template.",
|
package/dist/index.js
CHANGED
|
@@ -23680,6 +23680,268 @@ triggers:
|
|
|
23680
23680
|
content: "harness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
23681
23681
|
}
|
|
23682
23682
|
]
|
|
23683
|
+
},
|
|
23684
|
+
{
|
|
23685
|
+
version: "1.3.0",
|
|
23686
|
+
files: [
|
|
23687
|
+
{
|
|
23688
|
+
path: "agents/incident-response-slack.yaml",
|
|
23689
|
+
content: `imports:
|
|
23690
|
+
- ./incident-response.yaml
|
|
23691
|
+
systemPrompt: |
|
|
23692
|
+
You are the incident response agent for {{ $repoFullName }}. When an alert
|
|
23693
|
+
arrives, your job is fast, evidence-based triage \u2014 not heroics.
|
|
23694
|
+
|
|
23695
|
+
Investigation protocol:
|
|
23696
|
+
- Read the alert payload carefully; identify the affected service and
|
|
23697
|
+
the symptom.
|
|
23698
|
+
- Correlate with recent change: inspect the last day of commits on main
|
|
23699
|
+
in the mounted checkout (git log) and look for changes touching the
|
|
23700
|
+
affected area.
|
|
23701
|
+
- When an observability tool is available, pull the relevant logs,
|
|
23702
|
+
monitors, or metrics for the alert window before speculating.
|
|
23703
|
+
- Form a hypothesis with explicit confidence: likely cause, supporting
|
|
23704
|
+
evidence, and what would confirm or refute it.
|
|
23705
|
+
|
|
23706
|
+
Reporting protocol (Slack {{ $slackChannel }}):
|
|
23707
|
+
- Slack renders mrkdwn links: <https://url|text>.
|
|
23708
|
+
- Post one top-level message: severity, service, one-line symptom, and
|
|
23709
|
+
the alert link.
|
|
23710
|
+
- Thread the full triage under it: timeline, suspected cause with
|
|
23711
|
+
evidence, suggested next steps, and what you ruled out.
|
|
23712
|
+
- After your first reply, call auto.chat.subscribe for the thread so
|
|
23713
|
+
responder questions route back to you. Answer follow-ups in the same
|
|
23714
|
+
thread with the same evidence discipline.
|
|
23715
|
+
|
|
23716
|
+
Fix protocol (serve the fix on a platter):
|
|
23717
|
+
- When the evidence points at a specific code change with a clear,
|
|
23718
|
+
contained fix \u2014 a bad commit to revert, a config value to correct, a
|
|
23719
|
+
small patch \u2014 prepare it: create a focused branch from main in the
|
|
23720
|
+
mounted checkout, implement the minimal fix, push the branch, and open
|
|
23721
|
+
a draft pull request with create_pull_request.
|
|
23722
|
+
- The PR body states the hypothesis the fix encodes with its evidence
|
|
23723
|
+
and says how to verify it. Post the PR link in the incident thread.
|
|
23724
|
+
- Keep the fix minimal and reversible; run the repo's relevant checks
|
|
23725
|
+
when the environment allows and report what you ran. Never force a fix:
|
|
23726
|
+
when the cause is uncertain or the change would sprawl, the triage with
|
|
23727
|
+
suggested next steps is a complete deliverable on its own.
|
|
23728
|
+
|
|
23729
|
+
Hard limits: your only writes are the incident thread and the draft fix
|
|
23730
|
+
PR. Do not merge the PR, push to main, restart services, mutate
|
|
23731
|
+
infrastructure, or declare an incident resolved \u2014 humans review the fix
|
|
23732
|
+
and decide that. If the evidence is thin, say so plainly rather than
|
|
23733
|
+
manufacturing a conclusion.
|
|
23734
|
+
initialPrompt: |
|
|
23735
|
+
A production alert arrived.
|
|
23736
|
+
|
|
23737
|
+
Alert:
|
|
23738
|
+
- Title: {{title}}
|
|
23739
|
+
- Severity: {{severity}}
|
|
23740
|
+
- Service: {{service}}
|
|
23741
|
+
- Description: {{description}}
|
|
23742
|
+
- Link: {{link}}
|
|
23743
|
+
|
|
23744
|
+
Investigate following your responder instructions, then post the triage
|
|
23745
|
+
to Slack {{ $slackChannel }} and subscribe to the thread for follow-ups.
|
|
23746
|
+
If the evidence points at a clear, contained code fix, also open a draft
|
|
23747
|
+
fix PR and post the link in the thread.
|
|
23748
|
+
# The Slack variant triages in the channel, not on a GitHub issue: narrow the
|
|
23749
|
+
# base's GitHub tooling to the pull-request surface and drop the issue grant.
|
|
23750
|
+
tools:
|
|
23751
|
+
chat:
|
|
23752
|
+
kind: local
|
|
23753
|
+
implementation: chat
|
|
23754
|
+
auth:
|
|
23755
|
+
kind: connection
|
|
23756
|
+
provider: slack
|
|
23757
|
+
connection: "{{ $slackConnection }}"
|
|
23758
|
+
github:
|
|
23759
|
+
kind: github
|
|
23760
|
+
tools:
|
|
23761
|
+
- pull_request_read
|
|
23762
|
+
- create_pull_request
|
|
23763
|
+
- update_pull_request
|
|
23764
|
+
mounts:
|
|
23765
|
+
- kind: git
|
|
23766
|
+
repository: "{{ $repoFullName }}"
|
|
23767
|
+
mountPath: /workspace/repo
|
|
23768
|
+
ref: main
|
|
23769
|
+
depth: 100
|
|
23770
|
+
auth:
|
|
23771
|
+
kind: githubApp
|
|
23772
|
+
capabilities:
|
|
23773
|
+
contents: write
|
|
23774
|
+
pullRequests: write
|
|
23775
|
+
issues: none
|
|
23776
|
+
checks: read
|
|
23777
|
+
actions: read
|
|
23778
|
+
triggers:
|
|
23779
|
+
- name: mention
|
|
23780
|
+
event: chat.message.mentioned
|
|
23781
|
+
connection: "{{ $slackConnection }}"
|
|
23782
|
+
where:
|
|
23783
|
+
$.chat.provider: slack
|
|
23784
|
+
$.auto.authored: false
|
|
23785
|
+
$.auto.attributions:
|
|
23786
|
+
exists: false
|
|
23787
|
+
message: |
|
|
23788
|
+
{{message.author.userName}} mentioned you on Slack:
|
|
23789
|
+
|
|
23790
|
+
{{message.text}}
|
|
23791
|
+
|
|
23792
|
+
Channel: {{chat.channelId}}
|
|
23793
|
+
Thread: {{chat.threadId}}
|
|
23794
|
+
|
|
23795
|
+
Reply in that thread with chat.send. If the user provides alert details
|
|
23796
|
+
or clearly asks for an incident investigation, handle it. If required
|
|
23797
|
+
context is missing, ask for the alert details. Otherwise, briefly explain
|
|
23798
|
+
that you investigate production alerts, post triage to {{ $slackChannel }},
|
|
23799
|
+
open a draft fix PR when the cause is clear, and answer follow-up
|
|
23800
|
+
questions in the incident thread.
|
|
23801
|
+
routing:
|
|
23802
|
+
kind: spawn
|
|
23803
|
+
- name: thread-reply
|
|
23804
|
+
events:
|
|
23805
|
+
- chat.message.mentioned
|
|
23806
|
+
- chat.message.subscribed
|
|
23807
|
+
connection: "{{ $slackConnection }}"
|
|
23808
|
+
where:
|
|
23809
|
+
$.chat.provider: slack
|
|
23810
|
+
$.auto.authored: false
|
|
23811
|
+
$.auto.attributions:
|
|
23812
|
+
exists: true
|
|
23813
|
+
message: |
|
|
23814
|
+
{{message.author.userName}} replied in your incident thread:
|
|
23815
|
+
|
|
23816
|
+
{{message.text}}
|
|
23817
|
+
|
|
23818
|
+
Channel: {{chat.channelId}}
|
|
23819
|
+
Thread: {{chat.threadId}}
|
|
23820
|
+
|
|
23821
|
+
Answer in that thread with chat.send, keeping the evidence discipline
|
|
23822
|
+
from your instructions.
|
|
23823
|
+
routing:
|
|
23824
|
+
kind: deliver
|
|
23825
|
+
routeBy:
|
|
23826
|
+
kind: attributedSessions
|
|
23827
|
+
onUnmatched: drop
|
|
23828
|
+
`
|
|
23829
|
+
},
|
|
23830
|
+
{
|
|
23831
|
+
path: "agents/incident-response.yaml",
|
|
23832
|
+
content: `name: incident-response
|
|
23833
|
+
model:
|
|
23834
|
+
provider: anthropic
|
|
23835
|
+
id: claude-opus-4-8
|
|
23836
|
+
identity:
|
|
23837
|
+
displayName: Incident Response
|
|
23838
|
+
username: incident-response
|
|
23839
|
+
avatar:
|
|
23840
|
+
asset: .auto/assets/sentinel.png
|
|
23841
|
+
sha256: 8b8c15db5c65b19fcd81a856cc6b4c56cb64a2b6b473eedcf7159ee0e07f55ec
|
|
23842
|
+
description: First responder for production alerts - posts an evidence-based triage issue and drafts a fix PR when the cause is clear.
|
|
23843
|
+
imports:
|
|
23844
|
+
- ../fragments/environments/agent-runtime.yaml
|
|
23845
|
+
systemPrompt: |
|
|
23846
|
+
You are the incident response agent for {{ $repoFullName }}. When an alert
|
|
23847
|
+
arrives, your job is fast, evidence-based triage \u2014 not heroics.
|
|
23848
|
+
|
|
23849
|
+
Investigation protocol:
|
|
23850
|
+
- Read the alert payload carefully; identify the affected service and
|
|
23851
|
+
the symptom.
|
|
23852
|
+
- Correlate with recent change: inspect the last day of commits on main
|
|
23853
|
+
in the mounted checkout (git log) and look for changes touching the
|
|
23854
|
+
affected area.
|
|
23855
|
+
- When an observability tool is available, pull the relevant logs,
|
|
23856
|
+
monitors, or metrics for the alert window before speculating.
|
|
23857
|
+
- Form a hypothesis with explicit confidence: likely cause, supporting
|
|
23858
|
+
evidence, and what would confirm or refute it.
|
|
23859
|
+
|
|
23860
|
+
Reporting protocol (GitHub issues):
|
|
23861
|
+
- Create one GitHub issue for the incident with the issue_write tool:
|
|
23862
|
+
the title is "[severity] service: one-line symptom", and the body
|
|
23863
|
+
opens with the alert link, then the full triage \u2014 timeline, suspected
|
|
23864
|
+
cause with evidence, suggested next steps, and what you ruled out.
|
|
23865
|
+
- If material findings arrive after the issue exists, add them with
|
|
23866
|
+
add_issue_comment rather than rewriting the body, so the record stays
|
|
23867
|
+
chronological.
|
|
23868
|
+
|
|
23869
|
+
Fix protocol (serve the fix on a platter):
|
|
23870
|
+
- When the evidence points at a specific code change with a clear,
|
|
23871
|
+
contained fix \u2014 a bad commit to revert, a config value to correct, a
|
|
23872
|
+
small patch \u2014 prepare it: create a focused branch from main in the
|
|
23873
|
+
mounted checkout, implement the minimal fix, push the branch, and open
|
|
23874
|
+
a draft pull request with create_pull_request.
|
|
23875
|
+
- The PR body links the incident issue, states the hypothesis the fix
|
|
23876
|
+
encodes with its evidence, and says how to verify it. Link the PR from
|
|
23877
|
+
the incident issue with add_issue_comment.
|
|
23878
|
+
- Keep the fix minimal and reversible; run the repo's relevant checks
|
|
23879
|
+
when the environment allows and report what you ran. Never force a fix:
|
|
23880
|
+
when the cause is uncertain or the change would sprawl, the triage with
|
|
23881
|
+
suggested next steps is a complete deliverable on its own.
|
|
23882
|
+
|
|
23883
|
+
Hard limits: your only writes are the incident issue and the draft fix
|
|
23884
|
+
PR. Do not merge the PR, push to main, restart services, mutate
|
|
23885
|
+
infrastructure, or declare an incident resolved \u2014 humans review the fix
|
|
23886
|
+
and decide that. If the evidence is thin, say so plainly rather than
|
|
23887
|
+
manufacturing a conclusion.
|
|
23888
|
+
initialPrompt: |
|
|
23889
|
+
A production alert arrived.
|
|
23890
|
+
|
|
23891
|
+
Alert:
|
|
23892
|
+
- Title: {{title}}
|
|
23893
|
+
- Severity: {{severity}}
|
|
23894
|
+
- Service: {{service}}
|
|
23895
|
+
- Description: {{description}}
|
|
23896
|
+
- Link: {{link}}
|
|
23897
|
+
|
|
23898
|
+
Investigate following your responder instructions, then create the GitHub
|
|
23899
|
+
incident issue with your triage. If the evidence points at a clear,
|
|
23900
|
+
contained code fix, also open a draft fix PR and link it from the issue.
|
|
23901
|
+
mounts:
|
|
23902
|
+
- kind: git
|
|
23903
|
+
repository: "{{ $repoFullName }}"
|
|
23904
|
+
mountPath: /workspace/repo
|
|
23905
|
+
ref: main
|
|
23906
|
+
depth: 100
|
|
23907
|
+
auth:
|
|
23908
|
+
kind: githubApp
|
|
23909
|
+
capabilities:
|
|
23910
|
+
contents: write
|
|
23911
|
+
pullRequests: write
|
|
23912
|
+
issues: write
|
|
23913
|
+
checks: read
|
|
23914
|
+
actions: read
|
|
23915
|
+
workingDirectory: /workspace/repo
|
|
23916
|
+
tools:
|
|
23917
|
+
auto:
|
|
23918
|
+
kind: local
|
|
23919
|
+
implementation: auto
|
|
23920
|
+
github:
|
|
23921
|
+
kind: github
|
|
23922
|
+
tools:
|
|
23923
|
+
- issue_read
|
|
23924
|
+
- issue_write
|
|
23925
|
+
- add_issue_comment
|
|
23926
|
+
- pull_request_read
|
|
23927
|
+
- create_pull_request
|
|
23928
|
+
- update_pull_request
|
|
23929
|
+
triggers:
|
|
23930
|
+
- name: incident-webhook
|
|
23931
|
+
event: webhook.incident.opened
|
|
23932
|
+
endpoint: incident-webhook
|
|
23933
|
+
auth:
|
|
23934
|
+
kind: bearer_token
|
|
23935
|
+
secretRef: incident-webhook-secret
|
|
23936
|
+
routing:
|
|
23937
|
+
kind: spawn
|
|
23938
|
+
`
|
|
23939
|
+
},
|
|
23940
|
+
{
|
|
23941
|
+
path: "fragments/environments/agent-runtime.yaml",
|
|
23942
|
+
content: "harness: claude-code\nenvironment:\n name: agent-runtime\n image:\n kind: preset\n name: node24\n resources:\n memoryMB: 8192\n"
|
|
23943
|
+
}
|
|
23944
|
+
]
|
|
23683
23945
|
}
|
|
23684
23946
|
],
|
|
23685
23947
|
"@auto/issue-triage": [
|
|
@@ -29276,7 +29538,7 @@ var init_hardcoded = __esm({
|
|
|
29276
29538
|
"@auto/code-review": "A pull-request reviewer that posts one severity-ranked review comment and reports a check; a -slack entrypoint adds Slack verdicts.",
|
|
29277
29539
|
"@auto/daily-digest": "A scheduled read-only analyst that posts a daily shipped-code digest to a tracking issue; a -slack entrypoint posts to Slack instead.",
|
|
29278
29540
|
"@auto/handoff": "A handoff coder that takes ownership of delegated PRs or coding tasks and reports back when ready.",
|
|
29279
|
-
"@auto/incident-response": "A first responder for production alerts: investigates, posts a triage issue, and
|
|
29541
|
+
"@auto/incident-response": "A first responder for production alerts: investigates, posts a triage issue, and opens a draft fix PR when the cause is clear; -slack entrypoint for channel triage.",
|
|
29280
29542
|
"@auto/issue-triage": "Linear issue triage plus an implementation coder: label-driven triage handoffs that become focused PRs.",
|
|
29281
29543
|
"@auto/lead-engine": "An inbound-lead researcher that scores fit and drafts outreach for human approval; -slack entrypoint for a sales-channel flow.",
|
|
29282
29544
|
"@auto/onboarding": "Auto's house onboarding guidance, importable as a managed template.",
|
|
@@ -32356,7 +32618,7 @@ var init_package = __esm({
|
|
|
32356
32618
|
"package.json"() {
|
|
32357
32619
|
package_default = {
|
|
32358
32620
|
name: "@autohq/cli",
|
|
32359
|
-
version: "0.1.
|
|
32621
|
+
version: "0.1.379",
|
|
32360
32622
|
license: "SEE LICENSE IN README.md",
|
|
32361
32623
|
publishConfig: {
|
|
32362
32624
|
access: "public"
|