Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .archon/workflows/e2e-opencode-all-nodes-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ nodes:
# 8. depends_on + $nodeId.output substitution
# Use printf to safely handle multi-line output with special chars
- id: downstream
bash: "printf \"downstream got: %s\\n\" \"$prompt-node.output\""
bash: "prompt_out=$prompt-node.output; printf \"downstream got: %s\\n\" \"$prompt_out\""
depends_on: [ prompt-node ]

# 9. when: conditional (JSON dot-access on upstream output)
Expand Down
7 changes: 4 additions & 3 deletions .archon/workflows/e2e-opencode-inline-multi-agents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ nodes:

- id: assert
bash: |
echo "$multi.output" | grep -q "FIRST_MULTI_AGENT_OK" \
&& echo "$multi.output" | grep -q "SECOND_MULTI_AGENT_OK" \
&& echo "$inline.output" | grep -q "INLINE_AGENT_OK" \
v=$multi.output
echo "$v" | grep -q "FIRST_MULTI_AGENT_OK" \
&& echo "$v" | grep -q "SECOND_MULTI_AGENT_OK" \
&& v2=$inline.output && echo "$v2" | grep -q "INLINE_AGENT_OK" \
&& echo "PASS: both agents in multi node executed parallel, inline agent verified" \
|| (echo "FAIL: multi/inline agent output assertion failed"; exit 1)
timeout: 60000
Expand Down
6 changes: 4 additions & 2 deletions .archon/workflows/e2e-opencode-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ nodes:
idle_timeout: 60000

- id: assert
bash: "echo \"$simple.output\" | grep -q \"OPENCODE_OK\" && echo \"PASS\" ||
(echo \"FAIL\"; exit 1)"
bash: |
v=$simple.output
echo "$v" | grep -q "OPENCODE_OK" && echo "PASS" \
|| (echo "FAIL"; exit 1)
depends_on: [ simple ]
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,10 @@ nodes:
- id: fetch-issue
bash: |
# Strip quotes, whitespace, markdown backticks from AI output
ISSUE_NUM=$(echo "$extract-issue-number.output" | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
ISSUE_NUM=$(echo $extract-issue-number.output | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
if [ -z "$ISSUE_NUM" ]; then
echo "Failed to extract issue number from: $extract-issue-number.output" >&2
raw_issue_num=$extract-issue-number.output
echo "Failed to extract issue number from: $raw_issue_num" >&2
exit 1
fi
gh issue view "$ISSUE_NUM" --json title,body,labels,comments,state,url,author
Expand Down
312 changes: 37 additions & 275 deletions .archon/workflows/experimental/archon-fix-github-issue-experimental.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,10 @@ nodes:
- id: fetch-issue
bash: |
# Strip quotes, whitespace, markdown backticks from AI output
ISSUE_NUM=$(echo "$extract-issue-number.output" | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
ISSUE_NUM=$(echo $extract-issue-number.output | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
if [ -z "$ISSUE_NUM" ]; then
echo "Failed to extract issue number from: $extract-issue-number.output" >&2
raw_issue_num=$extract-issue-number.output
echo "Failed to extract issue number from: $raw_issue_num" >&2
exit 1
fi
gh issue view "$ISSUE_NUM" --json title,body,labels,comments,state,url,author
Expand Down
9 changes: 6 additions & 3 deletions .archon/workflows/experimental/archon-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@ nodes:
set -euo pipefail

echo "::: Validating release preconditions :::"
echo "Bump: $parse-args.output.bump"
echo "Dry run: $parse-args.output.dryRun"
bump=$parse-args.output.bump
dry_run=$parse-args.output.dryRun
echo "Bump: $bump"
echo "Dry run: $dry_run"
echo

git fetch origin --quiet
Expand Down Expand Up @@ -533,7 +535,8 @@ nodes:
git add -A
git status --short

git commit -m "Release $bump-version.output.newVersion"
new_version=$bump-version.output.newVersion
git commit -m "Release $new_version"
git push origin dev
timeout: 60000
depends_on: [write-files, bump-version]
Expand Down
5 changes: 3 additions & 2 deletions .archon/workflows/maintainer/maintainer-review-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,10 @@ nodes:

- id: fetch-pr
bash: |
PR_NUM=$(echo "$extract-pr-number.output" | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
PR_NUM=$(echo $extract-pr-number.output | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
if [ -z "$PR_NUM" ]; then
echo "Failed to extract PR number from: $extract-pr-number.output" >&2
raw_pr_num=$extract-pr-number.output
echo "Failed to extract PR number from: $raw_pr_num" >&2
exit 1
fi
echo "$PR_NUM" > "$ARTIFACTS_DIR/.pr-number"
Expand Down
2 changes: 1 addition & 1 deletion .archon/workflows/test-workflows/e2e-claude-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ nodes:
# 2. Assert non-empty output — fails CI if Claude returned nothing
- id: assert
bash: |
output="$simple.output"
output=$simple.output
if [ -z "$output" ]; then
echo "FAIL: simple node returned empty output"
exit 1
Expand Down
4 changes: 2 additions & 2 deletions .archon/workflows/test-workflows/e2e-codex-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ nodes:
# Assert both nodes returned output
- id: assert
bash: |
simple_out="$simple.output"
structured_out="$structured.output"
simple_out=$simple.output
structured_out=$structured.output
if [ -z "$simple_out" ]; then
echo "FAIL: simple node returned empty output"
exit 1
Expand Down
42 changes: 24 additions & 18 deletions .archon/workflows/test-workflows/e2e-copilot-all-nodes-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ nodes:

# 8. depends_on + $nodeId.output substitution
- id: downstream
bash: "echo 'downstream got: $prompt-node.output'"
bash: "prompt_out=$prompt-node.output; echo \"downstream got: $prompt_out\""
depends_on: [prompt-node]

# 9. when: conditional (JSON dot-access on bash JSON output)
Expand All @@ -97,7 +97,7 @@ nodes:
# 10. when: conditional on AI structured output (proves output_format
# parsed and dot-access works on the resulting object).
- id: structured-check
bash: "echo \"structured.status=$structured-node.output.status\""
bash: "status_val=$structured-node.output.status; echo \"structured.status=$status_val\""
depends_on: [structured-node]
when: "$structured-node.output.status == 'ok'"

Expand All @@ -113,11 +113,6 @@ nodes:
# 12. Verify every upstream node produced non-empty output, including
# dot-access on the structured-output node (proves output_format
# parsed and downstream consumers can index into it).
# Note: value-equality on string fields is avoided on purpose —
# shellQuote() wraps strings in literal single quotes, so a literal
# `[ "$x" != "ok" ]` would always fail. Non-emptiness is the right
# bar for a smoke; the `when:` gate on structured-check already
# proved the value matched 'ok' to reach this node.
- id: assert
bash: |
fail=0
Expand All @@ -129,17 +124,28 @@ nodes:
fail=1
fi
}
check prompt-node "$prompt-node.output"
check command-node "$command-node.output"
check loop-node "$loop-node.output"
check bash-json-node "$bash-json-node.output"
check script-bun-node "$script-bun-node.output"
check script-python-node "$script-python-node.output"
check downstream "$downstream.output"
check gated "$gated.output"
check merge "$merge.output"
check structured.status "$structured-node.output.status"
check structured.value "$structured-node.output.value"
v=$prompt-node.output
check prompt-node "$v"
v=$command-node.output
check command-node "$v"
v=$loop-node.output
check loop-node "$v"
v=$bash-json-node.output
check bash-json-node "$v"
v=$script-bun-node.output
check script-bun-node "$v"
v=$script-python-node.output
check script-python-node "$v"
v=$downstream.output
check downstream "$v"
v=$gated.output
check gated "$v"
v=$merge.output
check merge "$v"
v=$structured-node.output.status
check structured.status "$v"
v=$structured-node.output.value
check structured.value "$v"

if [ "$fail" -eq 1 ]; then exit 1; fi
echo "PASS: all node types + structured output verified"
Expand Down
12 changes: 6 additions & 6 deletions .archon/workflows/test-workflows/e2e-deterministic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ nodes:
for name in bash-echo script-bun script-python bash-read-output branch-true merge-node; do
echo "$name output received"
done
bash_echo="$bash-echo.output"
script_bun="$script-bun.output"
script_python="$script-python.output"
bash_read="$bash-read-output.output"
branch_t="$branch-true.output"
merge="$merge-node.output"
bash_echo=$bash-echo.output
script_bun=$script-bun.output
script_python=$script-python.output
bash_read=$bash-read-output.output
branch_t=$branch-true.output
merge=$merge-node.output
if [ -z "$bash_echo" ]; then echo "FAIL: bash-echo empty"; fail=1; fi
if [ -z "$script_bun" ]; then echo "FAIL: script-bun empty"; fail=1; fi
if [ -z "$script_python" ]; then echo "FAIL: script-python empty"; fail=1; fi
Expand Down
8 changes: 4 additions & 4 deletions .archon/workflows/test-workflows/e2e-minimax-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ nodes:
- id: assert
depends_on: [hello, identify, json]
bash: |
math="$hello.output"
ident="$identify.output"
jname="$json.output.name"
jok="$json.output.ok"
math=$hello.output
ident=$identify.output
jname=$json.output.name
jok=$json.output.ok

echo "── results ──"
echo "math = $math"
Expand Down
4 changes: 2 additions & 2 deletions .archon/workflows/test-workflows/e2e-mixed-providers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ nodes:
# 3. Assert both providers returned output
- id: assert
bash: |
claude_out="$claude-node.output"
codex_out="$codex-node.output"
claude_out=$claude-node.output
codex_out=$codex-node.output
if [ -z "$claude_out" ]; then
echo "FAIL: claude-node returned empty output"
exit 1
Expand Down
27 changes: 18 additions & 9 deletions .archon/workflows/test-workflows/e2e-pi-all-nodes-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,24 @@ nodes:
fail=1
fi
}
check prompt-node "$prompt-node.output"
check command-node "$command-node.output"
check loop-node "$loop-node.output"
check bash-json-node "$bash-json-node.output"
check script-bun-node "$script-bun-node.output"
check script-python-node "$script-python-node.output"
check downstream "$downstream.output"
check gated "$gated.output"
check merge "$merge.output"
v=$prompt-node.output
check prompt-node "$v"
v=$command-node.output
check command-node "$v"
v=$loop-node.output
check loop-node "$v"
v=$bash-json-node.output
check bash-json-node "$v"
v=$script-bun-node.output
check script-bun-node "$v"
v=$script-python-node.output
check script-python-node "$v"
v=$downstream.output
check downstream "$v"
v=$gated.output
check gated "$v"
v=$merge.output
check merge "$v"
if [ "$fail" -eq 1 ]; then exit 1; fi
echo "PASS: all 9 node types produced output"
depends_on: [merge, loop-node, command-node]
Expand Down
2 changes: 1 addition & 1 deletion .archon/workflows/test-workflows/e2e-pi-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ nodes:
# 2. Assert non-empty output — fails CI if Pi returned nothing
- id: assert
bash: |
output="$simple.output"
output=$simple.output
if [ -z "$output" ]; then
echo "FAIL: simple node returned empty output"
exit 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ nodes:
- id: bad-ref
depends_on: [classify]
bash: |
echo "this line should never print: $classify.output.nonexistent_field"
bad_ref=$classify.output.nonexistent_field
echo "this line should never print: $bad_ref"
Loading