iop/agent-ops/skills/common/finalize-task-routing/scripts/finalize-task-policy.sh
toki deea59d035 feat: task routing, orchestration, quota probe, and skill updates
- add finalize-task-routing skill with policy and test scripts
- add execution target selection scripts and tests for orchestrate-agent-task-loop
- add quota probe adapter and CLI status for node app
- update plan, finalize-task-routing, and orchestration skill files
- add agent-task archive for runtime target selector
- update stream-evidence-gate-core milestone
2026-07-25 19:33:17 +09:00

137 lines
3.4 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
usage() {
printf '%s\n' \
'usage:' \
' finalize-task-policy.sh pair <build-base-lane> <true|false> <build-scope> <build-state> <build-blast> <build-evidence> <build-verification> <review-base-lane> <review-scope> <review-state> <review-blast> <review-evidence> <review-verification>' \
' finalize-task-policy.sh build <base-lane> <true|false> <scope> <state> <blast> <evidence> <verification>' \
' finalize-task-policy.sh review <base-lane> <scope> <state> <blast> <evidence> <verification>' >&2
exit 2
}
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
formatter="$script_dir/finalize-task-route.sh"
field() {
local output=$1
local key=$2
local value
value=$(sed -n "s/^${key}=//p" <<<"$output")
if [[ -z "$value" ]]; then
printf 'missing formatter field: %s\n' "$key" >&2
exit 3
fi
printf '%s\n' "$value"
}
finalize_build() {
local base_lane=$1
local risk_triggered=$2
shift 2
local scores=("$@")
local base
local final
case "$risk_triggered" in
true|false)
;;
*)
usage
;;
esac
base=$("$formatter" build "$base_lane" "${scores[@]}")
BUILD_BASE_LANE=$(field "$base" lane)
BUILD_BASE_GRADE=$(field "$base" grade)
BUILD_RISK_TRIGGERED=$risk_triggered
if [[ "$risk_triggered" == true ]]; then
BUILD_FLOOR=G07
final=$("$formatter" build cloud "${scores[@]}" 7)
else
BUILD_FLOOR=none
final=$base
fi
BUILD_LANE=$(field "$final" lane)
BUILD_GRADE=$(field "$final" grade)
BUILD_FILENAME=$(field "$final" filename)
}
finalize_review() {
local base_lane=$1
local floor_number=$2
shift 2
local scores=("$@")
local base
local final
base=$("$formatter" review "$base_lane" "${scores[@]}")
REVIEW_BASE_LANE=$(field "$base" lane)
REVIEW_BASE_GRADE=$(field "$base" grade)
REVIEW_FLOOR=$(printf 'G%02d' "$floor_number")
final=$("$formatter" review cloud "${scores[@]}" "$floor_number")
REVIEW_LANE=$(field "$final" lane)
REVIEW_GRADE=$(field "$final" grade)
REVIEW_FILENAME=$(field "$final" filename)
}
emit_build() {
printf 'build_base_lane=%s\n' "$BUILD_BASE_LANE"
printf 'build_base_grade=%s\n' "$BUILD_BASE_GRADE"
printf 'build_risk_triggered=%s\n' "$BUILD_RISK_TRIGGERED"
printf 'build_floor=%s\n' "$BUILD_FLOOR"
printf 'build_lane=%s\n' "$BUILD_LANE"
printf 'build_grade=%s\n' "$BUILD_GRADE"
printf 'build_filename=%s\n' "$BUILD_FILENAME"
}
emit_review() {
printf 'review_base_lane=%s\n' "$REVIEW_BASE_LANE"
printf 'review_base_grade=%s\n' "$REVIEW_BASE_GRADE"
printf 'review_floor=%s\n' "$REVIEW_FLOOR"
printf 'review_lane=%s\n' "$REVIEW_LANE"
printf 'review_grade=%s\n' "$REVIEW_GRADE"
printf 'review_filename=%s\n' "$REVIEW_FILENAME"
}
mode=${1:-}
case "$mode" in
pair)
[[ $# -eq 14 ]] || usage
finalize_build "$2" "$3" "${@:4:5}"
if [[ "$BUILD_GRADE" == G09 || "$BUILD_GRADE" == G10 ]]; then
review_floor=10
else
review_floor=9
fi
finalize_review "$9" "$review_floor" "${@:10:5}"
;;
build)
[[ $# -eq 8 ]] || usage
finalize_build "$2" "$3" "${@:4:5}"
;;
review)
[[ $# -eq 7 ]] || usage
finalize_review "$2" 9 "${@:3:5}"
;;
*)
usage
;;
esac
printf 'finalizer=finalize-task-policy.sh\n'
printf 'finalizer_mode=%s\n' "$mode"
case "$mode" in
pair)
emit_build
emit_review
;;
build)
emit_build
;;
review)
emit_review
;;
esac