Skip to content

[Triage] docs/guides/cicd_pipeline.md: misleading — --output-format json gives machine-readable results with a success key; --dry-run --output-format json is the validate step. (DOC-D2B06-033) #832

Closed as duplicate

Description

@cemililik

Needs triage. Reviewers disagreed on this finding, so it is not counted in the backlog. Decide whether it is a real defect: if yes, set severity and wave; if not, close it with the reason.

DOC-D2B06-033 — docs/guides/cicd_pipeline.md: misleading — --output-format json gives machine-readable results with a success key; --dry-run --output-format json is the validate step.

severity High · confidence disputed · already tracked: KNOWN-OPEN C33-CLI-ERROR-ENVELOPE (CLI-05+CLI-11) — docs/roadmap/phase-16-trust-surface-hardening.md:505-508

Where. docs/guides/cicd_pipeline.md:12,48,119,255-262 (Turkish mirror: docs/guides/cicd_pipeline-tr.md:17,54,125,265-271) · type: misleading

The document says. --output-format json gives machine-readable results with a success key; --dry-run --output-format json is the validate step.

What the code does. For a config with a pipeline: block, --dry-run --output-format json prints nothing on stdout (exit 0; reproduced). A full pipeline run prints the serialised PipelineState, which has no success key, so data['success'] raises KeyError.

Code references. forgelm/cli/_pipeline.py:1156-1204, forgelm/cli/_pipeline.py:1669-1673, forgelm/cli/_pipeline.py:1777-1778

User impact. CI parsers built on this guide break as soon as a team adopts pipeline configs.

Proposed correction. Fix the code: emit the standard envelope ({success, …}) for pipeline dry-run and pipeline runs. Meanwhile note in the doc that pipeline configs return the pipeline state object (use .final_status) and an empty dry-run stdout.


Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Activity

  1. added
    documentationImprovements or additions to documentation
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    source: review-2026-10Found by the October 2026 code and documentation review
    on Oct 9, 2026
  2. added
    blockedWaits for another issue (see Blocked by); set and removed automatically, never by hand
    on Oct 20, 2026
  3. cemililik commented on Oct 20, 2026

    @cemililik
    CollaboratorAuthor

    The guide is accurate for single-stage configs (the dry-run and run envelopes carry success, metrics, resource_usage, benchmark). It is misleading for configs with a pipeline: block: --dry-run --output-format json exits 0 with empty stdout (reproduced), and a full run prints the pipeline state, which has no success key.

    That is the code defect tracked in #420, which also lists the matching json-output.md page. Closing as a duplicate of #420; this finding (DOC-D2B06-033) and the two guide pages are recorded there, so they are corrected in the same pull request.

    Triage round 1, checked against development on 2026-10-20.

  4. added
    duplicateThis issue or pull request already exists
    and removed
    needs-triageNot triaged yet: every new issue starts with it; only a maintainer removes it
    on Oct 20, 2026
  5. removed
    blockedWaits for another issue (see Blocked by); set and removed automatically, never by hand
    on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationduplicateThis issue or pull request already existssource: review-2026-10Found by the October 2026 code and documentation review

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions