Skip to content

Write eval context to file before passing to Claude (stdin fix) - #489

Merged
jdcmsd merged 1 commit into
mainfrom
fix-eval-stdin-2
Jun 17, 2026
Merged

Write eval context to file before passing to Claude (stdin fix)#489
jdcmsd merged 1 commit into
mainfrom
fix-eval-stdin-2

Conversation

@jdcmsd

@jdcmsd jdcmsd commented Jun 17, 2026

Copy link
Copy Markdown
Member

The pipe from run_eval.py to Claude times out because run_eval.py is slow (GitHub API fetches). Write to a temp file first, then feed Claude via stdin redirect.

@jdcmsd
jdcmsd requested a review from a team as a code owner June 17, 2026 15:00
@github-actions

Copy link
Copy Markdown

❌ Issue Linking Required

This PR could not be linked to an issue. All PRs must be linked to an issue for tracking purposes.

How to fix this:

Option 1: Add keyword to PR body (Recommended - auto-removes this comment)
Edit this PR description and add one of these lines:

  • This PR fixes #123 or Fixes: #123

  • This PR closes #123 or Closes: #123

  • This PR resolves #123 or Resolves: #123

  • Other supported keywords: fix, fixed, close, closed, resolve, resolved
    Option 2: Link via GitHub UI (Note: won't clear the failed check)

  1. Go to the PR → Development section (right sidebar)

  2. Click "Link issue" and select an existing issue

  3. Push a new commit or re-run the workflow to clear the failed check
    Option 3: Use branch naming
    Create a new branch with one of these patterns:

  • 123-feature-description (number at start)

  • issue-123-feature-description (issue-number at start)

  • feature-issue-123 (issue-number anywhere)

Why is this required?

Issue linking ensures proper tracking, documentation, and helps maintain project history. It connects your code changes to the problem they solve.---

This comment was automatically generated by the issue linking workflow

@claude

claude Bot commented Jun 17, 2026

Copy link
Copy Markdown

Claude finished @jdcmsd's task in 1m 35s —— View job


dotCMS Diff Analyst — PR #489

  • Read doc-object generation schema
  • Read rollback-unsafe categories reference
  • Fetch PR metadata
  • Get full PR diff
  • Fetch linked issues / matching epic — no linked issues; no epic match (skipped)
  • Generate doc object
  • Rollback-safety assessment + label

🟢 Rollback Safety: SAFE

The diff touches a single file — .github/workflows/issue_autodoc.yml — and only changes how the autodoc step feeds input to claude: instead of piping run_eval.py output directly, it writes to /tmp/eval_context.md and redirects stdin from that file.

-          | claude --print --allowedTools Bash,Write
+            > /tmp/eval_context.md
+
+          claude --print --allowedTools Bash,Write < /tmp/eval_context.md

Checked against every category in ROLLBACK_UNSAFE_CATEGORIES.md: no database migration / runonce task (C-1, C-4, H-1, H-2, H-3, H-7, M-1), no Elasticsearch mapping change (C-2), no contentlet_as_json model version bump (C-3), no new field type (H-4), no storage provider change (H-5), no procedure/function change (H-6), no REST/GraphQL/OSGi contract change (M-3, M-4), no push-publishing bundle format change (M-2). This is a CI-only workflow tweak with no runtime, schema, or API surface. Label AI: Safe To Rollback applied.


📄 Doc Object Draft (attached to merge commit post-merge)
---
commit: PLACEHOLDER_SHORT_SHA
title: "Write eval context to file before passing to Claude (stdin fix)"
type: ci
module: "autodoc CI workflow (issue_autodoc)"
customer_visible: no
security_relevant: false
breaking_change: false
pr:
  primary: 489
release_notes:
  audience: internal
  priority: low
  reasoning: "CI-only workflow change with no runtime or customer-observable effect."
provenance:
  generator: doc-object-skill
  model: claude-opus-4-8-20251001
  prompt_version: v0.1
  generated_at: 2026-06-17T15:02:37Z
  source_pr: 489
  source_diff_sha: PLACEHOLDER_FULL_SHA
---

What changed

The issue_autodoc GitHub Actions workflow previously piped the output of run_eval.py directly into claude --print in a single shell pipeline. Because run_eval.py is slow (it performs GitHub API fetches), the downstream claude process could time out waiting on the pipe. The step now materializes the eval context to /tmp/eval_context.md first, then invokes claude with stdin redirected from that file, decoupling the slow producer from the consumer.

Risk / watch

CI-infrastructure change only — no application code, schema, or API surface is affected. Worth noting for the build/tooling team that the autodoc step now depends on writability of /tmp/eval_context.md on the runner.


Summary: Generated the doc object (embedded above with the required doc-object-draft extraction markers) and completed the rollback-safety assessment. The change is a CI-only modification to issue_autodoc.yml and matches no rollback-unsafe category, so the AI: Safe To Rollback label was applied. No linked issues were referenced in the PR body, and the dotcms-aios epics path was not accessible, so no epic was attached.

@jdcmsd
jdcmsd merged commit cc26f60 into main Jun 17, 2026
20 of 22 checks passed
@jdcmsd
jdcmsd deleted the fix-eval-stdin-2 branch June 17, 2026 15:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant