You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"/updating - Run the updating skill to update all dependencies. Create atomic commits for each update. You are running in CI mode - skip builds and tests. Do not push or create a PR." \
83
-
2>&1 | tee claude-output.log
173
+
--max-turns 25 \
174
+
"$(cat <<PROMPT
175
+
<context>
176
+
You are an automated CI agent fixing test failures after a dependency update.
177
+
Git is configured with GPG signing. Dependencies were already updated and committed.
178
+
</context>
179
+
180
+
<failure_logs>
181
+
BUILD OUTPUT:
182
+
${BUILD_LOG}
183
+
184
+
TEST OUTPUT:
185
+
${TEST_LOG}
186
+
</failure_logs>
187
+
188
+
<instructions>
189
+
The dependency updates above caused build or test failures.
190
+
Analyze the failure logs, identify root causes, and fix them.
191
+
Create one atomic commit per fix with a conventional commit message.
192
+
Leave all changes local — the workflow handles pushing and PR creation.
193
+
</instructions>
194
+
195
+
<success_criteria>
196
+
All build and test failures are resolved.
197
+
Each fix has its own commit.
198
+
No uncommitted changes remain in the working tree.
199
+
</success_criteria>
200
+
PROMPT
201
+
)" \
202
+
2>&1 | tee claude-fix.log
84
203
CLAUDE_EXIT=${PIPESTATUS[0]}
85
204
set -e
86
205
@@ -90,6 +209,41 @@ jobs:
90
209
echo "success=false" >> $GITHUB_OUTPUT
91
210
fi
92
211
212
+
- name: Set final status
213
+
id: final
214
+
if: always()
215
+
run: |
216
+
if [ "${{ steps.update.outputs.success }}" != "true" ]; then
217
+
echo "success=false" >> $GITHUB_OUTPUT
218
+
elif [ "${{ steps.tests.outputs.result }}" != "fail" ]; then
219
+
# Tests passed (or were skipped) — update succeeded without needing fixes
220
+
echo "success=true" >> $GITHUB_OUTPUT
221
+
elif [ "${{ steps.claude.outputs.success }}" == "true" ]; then
222
+
# Tests failed but sonnet fixed them
223
+
echo "success=true" >> $GITHUB_OUTPUT
224
+
else
225
+
echo "success=false" >> $GITHUB_OUTPUT
226
+
fi
227
+
228
+
- name: Validate changes
229
+
id: validate
230
+
if: steps.final.outputs.success == 'true'
231
+
run: |
232
+
UNEXPECTED=""
233
+
for file in $(git diff --name-only origin/main..HEAD); do
0 commit comments