Add Word-render step to NSF budget-justification multi-step workflow#30
Merged
ProfessorPolymorphic merged 2 commits intoApr 24, 2026
Merged
Conversation
Adds a new nsf-budget-justification-render-udm component and pins it as
step 4 of the multi-step workflow so the deliverable is a Word-pasteable
{ markdown, html } object instead of the eight-section JSON array. The
array remains available as the step 3 result for evals and downstream
tooling. Workflow bumped to 2.0.0 because the deliverable contract
changed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sweeps two prose surfaces that still described the multi-step workflow as three steps after the render step landed: the workflow's evals README (deliverable is now the rendered object, not the eight-section array) and the review component's README (no longer the "QA half" — it is the QA step that feeds the downstream renderer). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nsf-budget-justification-render-udmcomponent (transformation, NSF-specific, repo-local schema) renders the reviewed eight-section array into Word-pasteable Markdown and HTML strings.workflows/nsf-budget-justification-multistepgains it as step 4;is_output: truemoved off step 3 (review). Workflow bumped to 2.0.0 because the deliverable contract changes from a JSON array to a{ markdown, html }object.downstream_renderer.Why
Operators reported needing a Word-pasteable artifact at the end of the pipeline. The eight-section array remains the right intermediate contract for evals and downstream tooling, so it is preserved as the step 3 result; the new step 4 is a deterministic renderer (no fabrication, no paraphrase) that emits both a Markdown string (paste as plain text, apply Word styles manually) and an HTML fragment (paste via Paste Special → HTML to map
<h1>/<h2>/<p>/lists to Word's heading and body styles automatically).What changed
components/nsf-budget-justification-render-udm/prompt.md— deterministic renderer promptcomponents/nsf-budget-justification-render-udm/schema.json— owns the{ markdown, html }output contractworkflows/nsf-budget-justification-multistep/manifest.yaml— pins the new component, adds step 4, movesis_output: true*.vandalizer.jsonrebuilt;x_ai4rablock lists all four pinned components with prompt SHAsevals/README.mdupdated to describe the rendered deliverablecomponent_catalog_overrides.yaml— render-component triad metadata + back-link from reviewcomponent_catalog.jsonregenerated (12 components)components/nsf-budget-justification-review-udm/README.md— no longer the "QA half"; described as the QA step that feeds the rendererTest plan
python3 scripts/build_component_catalog.pycleanpython3 scripts/build_vandalizer_workflows.pycleanpython3 .github/scripts/lint_components.py— only pre-existing version-behind warnings onnsf-award-notice-extraction-udmandrfp-extraction, unrelated to this changepython3 scripts/build_docs.pyclean (12 components surfaced)python3 -m mkdocs build --strictcleannsf-budget-justification-multistep.vandalizer.jsoninto Vandalizer and run an end-to-end pass on a real workbook to confirm the rendered object pastes cleanly into Word via Paste Special → HTMLworkflows/nsf-budget-justification-multistep/evals/cases/once a representative golden render is captured🤖 Generated with Claude Code