Skip to content

[docs] docs: reduce bloat in safe-outputs reference#25232

Merged
pelikhan merged 1 commit intomainfrom
docs/unbloat-safe-outputs-10e1e3013d4d0be1
Apr 8, 2026
Merged

[docs] docs: reduce bloat in safe-outputs reference#25232
pelikhan merged 1 commit intomainfrom
docs/unbloat-safe-outputs-10e1e3013d4d0be1

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 8, 2026

Removes redundant and verbose content from docs/src/content/docs/reference/safe-outputs.md to improve readability.

File Improved

docs/src/content/docs/reference/safe-outputs.md (1590 → 1497 lines, 93 lines removed, 398 words removed)

What Was Removed

Section Lines removed Reason
call-workflow — "Compiled Output" subsection 22 Internal compiler YAML generation detail; not needed to use the feature
call-workflow — Worker Inputs: merged two subsections into one 13 "Canonical transport" + "Typed inputs" subsections said the same thing twice
dispatch-workflow — target workflow example 13 3-input full example simplified to 2-input minimal example
create-issue — Group By Day redundant bullets 4 4 bullets that restated what the preceding prose already explained
create-project-status-update — Example Usage section 29 Verbose 20-line YAML body showing a full report structure; status values kept inline
noop — Failure mode paragraph 3 Duplicated information already in the :::danger block above it
missing-data — bullet list 4 Converted 4-bullet list to a single prose sentence

Preserved

  • All technical accuracy and specific field documentation
  • All YAML examples (simplified where they had excessive detail)
  • All cross-reference links
  • All frontmatter metadata

Screenshots

Playwright was unable to connect to the preview server (known network isolation constraint in this AWF configuration). Page content was verified via curl — the rendered HTML confirms "Compiled Output" section is no longer present, and the page loads successfully at /gh-aw/reference/safe-outputs/.

References:

🗜️ Compressed by Documentation Unbloat · ● 1.3M ·

  • expires on Apr 10, 2026, 3:59 AM UTC

Remove redundant and verbose content from the safe-outputs reference:

- Remove "Compiled Output" section from call-workflow (22 lines): internal
  compiler YAML generation detail not needed for using the feature
- Condense Worker Inputs from two subsections into one (13 lines saved):
  merged canonical transport + typed inputs explanations
- Simplify dispatch-workflow target workflow example (13 lines saved):
  reduced from 3 inputs with full parameter definitions to 2-input example
- Remove Group By Day redundant bullets (4 lines): bullets repeated what
  the preceding prose already stated
- Remove create-project-status-update Example Usage section (29 lines):
  verbose multi-section YAML body example removed; status values kept
- Condense noop failure mode paragraph (3 lines): duplicated the danger block
- Condense Missing Data bullets (4 lines): converted 4-bullet list to prose

Net: 93 lines removed (5.8%), 398 words removed (4.2%)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions github-actions bot added automation documentation Improvements or additions to documentation labels Apr 8, 2026
@pelikhan pelikhan marked this pull request as ready for review April 8, 2026 04:25
Copilot AI review requested due to automatic review settings April 8, 2026 04:25
@pelikhan pelikhan merged commit a626519 into main Apr 8, 2026
@pelikhan pelikhan deleted the docs/unbloat-safe-outputs-10e1e3013d4d0be1 branch April 8, 2026 04:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR trims redundant content in the Safe Outputs reference to improve readability while keeping the same feature surface and examples.

Changes:

  • Condensed prose by merging/removing repeated explanations (e.g., group-by-day, missing-data, call-workflow worker inputs).
  • Removed overly verbose example blocks (e.g., create-project-status-update “Example Usage” YAML).
  • Simplified workflow input examples (e.g., dispatch-workflow target workflow snippet).
Show a summary per file
File Description
docs/src/content/docs/reference/safe-outputs.md Removes/condenses repeated sections and long examples across multiple safe-output reference entries.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

- If a matching issue was created today (UTC), new content is posted as a comment on it
- The max-count slot is not consumed when posting as a comment
- On failure of the pre-check, normal issue creation proceeds as a fallback
This is useful for scheduled workflows (e.g. every 4 hours) that produce recurring daily reports: all runs on the same day contribute to one issue, eliminating duplicate open/closed issues. The max-count slot is not consumed when posting as a comment; on failure of the pre-check, normal issue creation proceeds as a fallback.
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

max-count is referenced here, but the configuration key used throughout this document is max (and there is no max-count field in this section). Consider rephrasing to “the max limit slot…” (or similar) to avoid implying a separate config option.

Suggested change
This is useful for scheduled workflows (e.g. every 4 hours) that produce recurring daily reports: all runs on the same day contribute to one issue, eliminating duplicate open/closed issues. The max-count slot is not consumed when posting as a comment; on failure of the pre-check, normal issue creation proceeds as a fallback.
This is useful for scheduled workflows (e.g. every 4 hours) that produce recurring daily reports: all runs on the same day contribute to one issue, eliminating duplicate open/closed issues. The `max` limit slot is not consumed when posting as a comment; on failure of the pre-check, normal issue creation proceeds as a fallback.

Copilot uses AI. Check for mistakes.
Comment on lines 855 to 857
**When to call `noop`**: Any time no GitHub action (issue, comment, PR, label, etc.) is needed — e.g., no issues found, no changes detected, or repository already in desired state. Do NOT call `noop` if any other safe-output action was taken.

**Failure mode**: If an agent completes its analysis without calling any safe-output tool, the workflow will fail with an error like `agent did not produce any safe outputs`. This is the most common cause of safe-output workflow failures.

Agent output: `{"noop": {"message": "No action needed: analysis complete - no issues found"}}`. Messages appear in the workflow conclusion comment or step summary.
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The noop section no longer includes the concrete failure/error string (e.g., agent did not produce any safe outputs). The :::danger block explains the failure mode, but having the exact message is useful for troubleshooting and searching logs. Suggest reintroducing a short “common error” mention (either here or in the danger block).

Copilot uses AI. Check for mistakes.
```

**Typed inputs — compiler-derived forwarding:** When a worker declares additional `workflow_call.inputs` beyond `payload`, the compiler reads those declarations and emits one extra `with:` entry per input in the fan-out job using `fromJSON(needs.safe_outputs.outputs.call_workflow_payload).<inputName>`. This means worker steps can reference `inputs.<name>` directly, without manually parsing the JSON envelope:
All agent arguments are serialized into a `payload` JSON string passed via `call_workflow_payload`. Workers always receive this `payload` input. To use typed inputs directly (without parsing JSON), declare additional `workflow_call.inputs` beyond `payload` — the compiler auto-derives `fromJSON(...).<inputName>` forwarding for each, so workers can reference `${{ inputs.<name> }}` directly:
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph introduces call_workflow_payload, but the surrounding text no longer explains what/where that value is (it was previously defined as a step/workflow output). To keep the docs self-contained, either briefly define it here (e.g., that it’s the gateway output forwarded into the worker’s payload input) or avoid referencing the internal output name and just describe the payload input contract.

Suggested change
All agent arguments are serialized into a `payload` JSON string passed via `call_workflow_payload`. Workers always receive this `payload` input. To use typed inputs directly (without parsing JSON), declare additional `workflow_call.inputs` beyond `payload` — the compiler auto-derives `fromJSON(...).<inputName>` forwarding for each, so workers can reference `${{ inputs.<name> }}` directly:
All agent arguments are serialized into the worker's `payload` JSON string input. Internally, this value is forwarded from the gateway output `call_workflow_payload`. Workers always receive the `payload` input. To use typed inputs directly (without parsing JSON), declare additional `workflow_call.inputs` beyond `payload` — the compiler auto-derives `fromJSON(...).<inputName>` forwarding for each, so workers can reference `${{ inputs.<name> }}` directly:

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants