@plainconceptsplatform/workflows 1.0.9 → 1.0.11
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.
|
@@ -314,11 +314,16 @@ jobs:
|
|
|
314
314
|
# The signal is the item counter, not `code_push_failure_count`. gh-aw treats the fallback
|
|
315
315
|
# as a *successful* outcome for the item -- the dogfood run logged `Status: success`,
|
|
316
316
|
# `Successful: 1` and a resolved `GH_AW_CODE_PUSH_FAILURE_COUNT: 0` while filing #11 -- so
|
|
317
|
-
# gating on that count posted the wrong message.
|
|
318
|
-
#
|
|
319
|
-
#
|
|
317
|
+
# gating on that count posted the wrong message.
|
|
318
|
+
#
|
|
319
|
+
# The counter alone is not enough, though: a `noop` also counts as one succeeded item, so
|
|
320
|
+
# "items_succeeded != 0 with no PR number" is true for a run that produced nothing to do as
|
|
321
|
+
# well as for a run whose push fell back to an issue. Telling a person their patch was filed
|
|
322
|
+
# as a separate issue when the agent actually said "already fixed on main" is the bug this
|
|
323
|
+
# comment exists to prevent (Odyssey #226). Distinguish them the same way the steps below
|
|
324
|
+
# do: gate on whether the agent actually asked for a pull request.
|
|
320
325
|
- name: Flag a patch that could not be pushed
|
|
321
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '0' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != ''
|
|
326
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '0' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '' && contains(needs.agent.outputs.output_types, 'create_pull_request')
|
|
322
327
|
uses: ./.github/actions/add-issue-labels
|
|
323
328
|
with:
|
|
324
329
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -327,7 +332,7 @@ jobs:
|
|
|
327
332
|
${{ env.REVIEW_LABEL }}
|
|
328
333
|
${{ env.STALLED_LABEL }}
|
|
329
334
|
- name: Say where the patch went
|
|
330
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '0' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != ''
|
|
335
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '0' && needs.safe_outputs.outputs.process_safe_outputs_items_succeeded != '' && contains(needs.agent.outputs.output_types, 'create_pull_request')
|
|
331
336
|
uses: ./.github/actions/create-issue-comment
|
|
332
337
|
with:
|
|
333
338
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -368,7 +373,7 @@ jobs:
|
|
|
368
373
|
${{ env.OUTPUT_NOT_APPLIED_COMMENT }}
|
|
369
374
|
[View this workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
370
375
|
- name: Release an issue the agent found nothing to do on
|
|
371
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
376
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && contains(needs.agent.outputs.output_types, 'noop')
|
|
372
377
|
uses: ./.github/actions/add-issue-labels
|
|
373
378
|
with:
|
|
374
379
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -376,14 +381,14 @@ jobs:
|
|
|
376
381
|
labels: |-
|
|
377
382
|
${{ env.REVIEW_LABEL }}
|
|
378
383
|
- name: Take the implement label off a decided issue
|
|
379
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
384
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && contains(needs.agent.outputs.output_types, 'noop')
|
|
380
385
|
uses: ./.github/actions/remove-issue-labels
|
|
381
386
|
with:
|
|
382
387
|
token: ${{ steps.app-token.outputs.token }}
|
|
383
388
|
issue-number: ${{ inputs.issue-number }}
|
|
384
389
|
labels: ${{ env.IMPLEMENT_LABEL }}
|
|
385
390
|
- name: Say there was nothing to do
|
|
386
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
391
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && contains(needs.agent.outputs.output_types, 'noop')
|
|
387
392
|
uses: ./.github/actions/create-issue-comment
|
|
388
393
|
with:
|
|
389
394
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -393,7 +398,7 @@ jobs:
|
|
|
393
398
|
${{ env.NOOP_COMMENT }}
|
|
394
399
|
[View this workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
395
400
|
- name: Flag a patch nobody asked to publish
|
|
396
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
401
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && !contains(needs.agent.outputs.output_types, 'noop') && needs.agent.outputs.has_patch == 'true'
|
|
397
402
|
uses: ./.github/actions/add-issue-labels
|
|
398
403
|
with:
|
|
399
404
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -402,7 +407,7 @@ jobs:
|
|
|
402
407
|
${{ env.REVIEW_LABEL }}
|
|
403
408
|
${{ env.STALLED_LABEL }}
|
|
404
409
|
- name: Say the patch was never asked for
|
|
405
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
410
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && !contains(needs.agent.outputs.output_types, 'noop') && needs.agent.outputs.has_patch == 'true'
|
|
406
411
|
uses: ./.github/actions/create-issue-comment
|
|
407
412
|
with:
|
|
408
413
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -412,7 +417,7 @@ jobs:
|
|
|
412
417
|
${{ env.PATCH_WITHOUT_REQUEST_COMMENT }}
|
|
413
418
|
[View this workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
414
419
|
- name: Flag a run that produced nothing
|
|
415
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
420
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && !contains(needs.agent.outputs.output_types, 'noop') && needs.agent.outputs.has_patch != 'true'
|
|
416
421
|
uses: ./.github/actions/add-issue-labels
|
|
417
422
|
with:
|
|
418
423
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -421,7 +426,7 @@ jobs:
|
|
|
421
426
|
${{ env.REVIEW_LABEL }}
|
|
422
427
|
${{ env.STALLED_LABEL }}
|
|
423
428
|
- name: Say the run produced nothing
|
|
424
|
-
if: needs.safe_outputs.outputs.created_pr_number == '' &&
|
|
429
|
+
if: needs.safe_outputs.outputs.created_pr_number == '' && !contains(needs.agent.outputs.output_types, 'create_pull_request') && !contains(needs.agent.outputs.output_types, 'noop') && needs.agent.outputs.has_patch != 'true'
|
|
425
430
|
uses: ./.github/actions/create-issue-comment
|
|
426
431
|
with:
|
|
427
432
|
token: ${{ steps.app-token.outputs.token }}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
# Managed by @plainconceptsplatform/workflows. Source: loops/workflows/agent-refine.md. Update with `workflows update --force`; consumer edits may be overwritten.
|
|
3
3
|
env:
|
|
4
|
-
REPO_RULES: "Refine only the selected issue into a grounded, implementation-ready user story. Read repository documentation for domain context. Write acceptance criteria that match existing patterns. Where a story or its open questions decide how business data (named people, roles, addresses) is stored, resolve it toward the repository's convention for that data -- a database entity or a settings entry -- and record that choice in the acceptance criteria; do not carry a person's name or email address into the story as something the code reads from a constant. Do not implement code."
|
|
4
|
+
REPO_RULES: "Refine only the selected issue into a grounded, implementation-ready user story. Read repository documentation for domain context. Write acceptance criteria that match existing patterns. Where a story or its open questions decide how business data (named people, roles, addresses) is stored, resolve it toward the repository's convention for that data -- a database entity or a settings entry -- and record that choice in the acceptance criteria; do not carry a person's name or email address into the story as something the code reads from a constant. Do not implement code. Do not use web search or web fetch tools. The issue body already contains the research that motivated it; derive your domain context from the repository's own code and documentation only."
|
|
5
5
|
# The estimate decides whether a story gets split, and the prompt tells the agent these bands
|
|
6
6
|
# come from this repository's own merged pull requests. They have to actually come from it, or
|
|
7
7
|
# the claim is false and every repository sizes work on another one's diffs.
|