Skip to content
Open
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
6 changes: 3 additions & 3 deletions .archon/workflows/defaults/archon-fix-github-issue.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,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)
RAW_ISSUE_NUM=$extract-issue-number.output
ISSUE_NUM=$(echo "$RAW_ISSUE_NUM" | grep -oE '[0-9]+' | head -1)
if [ -z "$ISSUE_NUM" ]; then
echo "Failed to extract issue number from: $extract-issue-number.output" >&2
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
4 changes: 3 additions & 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,9 @@ 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_output=$prompt-node.output
printf "downstream got: %s\n" "$prompt_output"
depends_on: [ prompt-node ]

# 9. when: conditional (JSON dot-access on upstream output)
Expand Down
8 changes: 5 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,11 @@ 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" \
multi_output=$multi.output
inline_output=$inline.output
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" \
&& 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: |
simple_output=$simple.output
echo "$simple_output" | 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 @@ -61,10 +61,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)
RAW_ISSUE_NUM=$extract-issue-number.output
ISSUE_NUM=$(echo "$RAW_ISSUE_NUM" | grep -oE '[0-9]+' | head -1)
if [ -z "$ISSUE_NUM" ]; then
echo "Failed to extract issue number from: $extract-issue-number.output" >&2
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
10 changes: 7 additions & 3 deletions .archon/workflows/experimental/archon-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,12 @@ nodes:
bash: |
set -euo pipefail

bump=$parse-args.output.bump
dry_run=$parse-args.output.dryRun

echo "::: Validating release preconditions :::"
echo "Bump: $parse-args.output.bump"
echo "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 +536,8 @@ nodes:
git add -A
git status --short

git commit -m "Release $bump-version.output.newVersion"
version=$bump-version.output.newVersion
git commit -m "Release $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)
RAW_PR_NUM=$extract-pr-number.output
PR_NUM=$(echo "$RAW_PR_NUM" | grep -oE '[0-9]+' | head -1)
if [ -z "$PR_NUM" ]; then
echo "Failed to extract PR number from: $extract-pr-number.output" >&2
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
37 changes: 25 additions & 12 deletions .archon/workflows/test-workflows/e2e-copilot-all-nodes-smoke.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ 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: |
structured_status=$structured-node.output.status
echo "structured.status=$structured_status"
depends_on: [structured-node]
when: "$structured-node.output.status == 'ok'"

Expand Down Expand Up @@ -129,17 +131,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"
prompt_output=$prompt-node.output
command_output=$command-node.output
loop_output=$loop-node.output
bash_json_output=$bash-json-node.output
script_bun_output=$script-bun-node.output
script_python_output=$script-python-node.output
downstream_output=$downstream.output
gated_output=$gated.output
merge_output=$merge.output
structured_status=$structured-node.output.status
structured_value=$structured-node.output.value
check prompt-node "$prompt_output"
check command-node "$command_output"
check loop-node "$loop_output"
check bash-json-node "$bash_json_output"
check script-bun-node "$script_bun_output"
check script-python-node "$script_python_output"
check downstream "$downstream_output"
check gated "$gated_output"
check merge "$merge_output"
check structured.status "$structured_status"
check structured.value "$structured_value"

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"
prompt_output=$prompt-node.output
command_output=$command-node.output
loop_output=$loop-node.output
bash_json_output=$bash-json-node.output
script_bun_output=$script-bun-node.output
script_python_output=$script-python-node.output
downstream_output=$downstream.output
gated_output=$gated.output
merge_output=$merge.output
check prompt-node "$prompt_output"
check command-node "$command_output"
check loop-node "$loop_output"
check bash-json-node "$bash_json_output"
check script-bun-node "$script_bun_output"
check script-python-node "$script_python_output"
check downstream "$downstream_output"
check gated "$gated_output"
check merge "$merge_output"
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

Large diffs are not rendered by default.