Skip to content

feat(sf): wire the non-fatal Director ReportCard state into the Saturday pipeline#367

Merged
cipher813 merged 1 commit into
mainfrom
feat/director-reportcard-sf-state
Jun 4, 2026
Merged

feat(sf): wire the non-fatal Director ReportCard state into the Saturday pipeline#367
cipher813 merged 1 commit into
mainfrom
feat/director-reportcard-sf-state

Conversation

@cipher813
Copy link
Copy Markdown
Owner

What

Wires the evaluator's Report Card v2 producer into the Saturday Step Function (the Director arc's chosen cadence). A new ReportCard Lambda state runs after the substrate health check (so it reads fresh grades) and invokes alpha-engine-evaluator:live to build s3://alpha-engine-research/evaluator/{date}/report_card.json — the 7-tile MetricRecord substrate the Director will consume.

Non-fatal by design: ReportCard's own Catch routes to CheckShellRunNotify, so an advisory grading failure never breaks the run that produced the real trading artifacts (director-plan §5).

Changes

  • step_function.jsonWaitForWeeklySubstrateHealthCheck.Next CheckShellRunNotifyReportCard; new ReportCard Task (FunctionName: alpha-engine-evaluator:live, Payload: {date.$: $.run_date}, 300s timeout, retry, Catch → CheckShellRunNotify, success Next → CheckShellRunNotify).
  • iam/alpha-engine-step-functions-role.json — add lambda:InvokeFunction on arn:...:function:alpha-engine-evaluator*.
  • 3 SF-wiring guardrail tests + the payload registry updated for the new state (the chokepoints that fail-loud on a wiring change — extending them IS the contract).

Applied live this session (pre-merge, per the codified-IAM convention)

  • infrastructure/iam/apply.sh alpha-engine-step-functions-role → grant applied (verified live).
  • aws stepfunctions update-state-machine on alpha-engine-saturday-pipeline → verified ReportCard present + wired (WaitForWeeklySubstrateHealthCheck → ReportCard → CheckShellRunNotify).

The evaluator Lambda + its own role were provisioned this session (alpha-engine-evaluator repo #19) and already produce report_card.json (canary + a manual seed both status: ok). The ReportCard state now produces it automatically every Saturday.

Full suite 1804 → 1807 passed.

🤖 Generated with Claude Code

…day pipeline

Inserts a ReportCard Lambda state into the Saturday SF after the substrate
health check (so it reads fresh grades), invoking alpha-engine-evaluator:live to
build s3://alpha-engine-research/evaluator/{date}/report_card.json — the 7-tile
Report Card v2 substrate the Director will consume. NON-FATAL: its own Catch
routes to CheckShellRunNotify, so an advisory grading failure never breaks the
run that produced the real trading artifacts (director-plan §5).

- step_function.json: WaitForWeeklySubstrateHealthCheck.Next CheckShellRunNotify
  → ReportCard; new ReportCard Task (FunctionName alpha-engine-evaluator:live,
  Payload {date.$: $.run_date}, 300s, retry, Catch→CheckShellRunNotify).
- iam/alpha-engine-step-functions-role.json: add lambda:InvokeFunction on
  arn:...:function:alpha-engine-evaluator* (applied live pre-merge per the
  codified-IAM convention; drift-check passes).
- Update the 3 SF-wiring guardrail tests + the payload registry for the new
  state (these are the chokepoints that fail-loud on a wiring change).

Applied live this session: IAM grant applied + update-state-machine on
alpha-engine-saturday-pipeline (verified ReportCard present + wired). Full suite
1804→1807 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cipher813 cipher813 merged commit 05e4f4c into main Jun 4, 2026
2 checks passed
@cipher813 cipher813 deleted the feat/director-reportcard-sf-state branch June 4, 2026 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant