Skip to content

docs(#4718): add ADR 0072 for the pre-script output protocol - #5016

Merged
waynesun09 merged 7 commits into
mainfrom
adr-agent-pre-script-gating
Aug 4, 2026
Merged

docs(#4718): add ADR 0072 for the pre-script output protocol#5016
waynesun09 merged 7 commits into
mainfrom
adr-agent-pre-script-gating

Conversation

@waynesun09

Copy link
Copy Markdown
Member

Summary

Records the {AGENT}_SKIP_{THING} skip-flag convention introduced by #5013 / fullsend-ai/agents#175, so it's a documented pattern rather than something reviewed from scratch each time an agent needs it.

Related Issue

Relates to #4718 — specifically rh-hemartin's request that every agent gate expensive setup consistently, not just code/fix.

Why now

rh-hemartin pushed back on the env-var mechanism in #4762 before agreeing it was the right approach, and separately asked for it to be applied consistently across agents. Rather than re-litigate the mechanism on every future PR that needs it, this ADR records the decision once: what the flag naming is, which invocation sets it, why it's a different category from ADR 0049's user-facing config vars, and the scope (apply when an agent actually needs workflow-level gating — not retroactively to agents that don't).

Changes

  • docs/ADRs/0072-pre-script-skip-flag-convention.md — new ADR (Accepted)
  • docs/architecture.md — one-bullet addition under "Agent Harness > Decided:", linking the new ADR (per skills/writing-adrs/SKILL.md's living-document update step)

Testing

  • make lint passes (staged), including lint ADR statuses, lint ADR numbers, lint ADR frontmatter, lint markdown links
  • Followed skills/writing-adrs/SKILL.md checklist: scanned docs/ADRs/ on main + open PRs for in-flight numbers (0070 and 0071 both already claimed by other open PRs — used 0072), used the template, matched frontmatter status to the ## Status heading, no leading zeros in the title number

@fullsend-ai-review

fullsend-ai-review Bot commented Jul 15, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:59 PM UTC · Completed 2:09 PM UTC
Commit: 05871a0 · View workflow run →

@qodo-code-review

qodo-code-review Bot commented Jul 15, 2026

Copy link
Copy Markdown

PR Summary by Qodo

Add ADR 0072 documenting pre-script skip signalling via output protocol

📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Add ADR 0072 defining the FULLSEND_PRESCRIPT_OUTPUT contract for pre-script “skip” signalling.
• Document the shift to a single pre-script execution inside fullsend run, avoiding inline
 workflow pre-checks.
• Update docs/architecture.md to link the new ADR under Agent Harness decisions.
Diagram

graph TD
  CI["CI workflow"] --> CLI["fullsend run"] --> PS["Agent pre_script"] --> OUT[("PRESCRIPT_OUTPUT")]
  OUT --> CLI --> DEC{"skipped?"}
  DEC -- "yes" --> SKIP["Exit: skipped"] --> CI
  DEC -- "no" --> SBX["Create sandbox"]

  subgraph Legend
    direction LR
    _svc["Step/CLI"] ~~~ _dec{"Decision"} ~~~ _file[("File")]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Document `{AGENT}_SKIP_{THING}` env-var skip flags
  • ➕ Matches the existing env-var naming convention in ADR 0049
  • ➕ Doesn’t require a new CLI-provided output file contract
  • ➖ Keeps forge-specific wiring in reusable workflows
  • ➖ Requires keeping flags in sync across duplicated script copies / repos
  • ➖ Harder to make consistent across GitHub/GitLab since call sites differ
2. Absorb gated setup into `fullsend run` (eliminate gating)
  • ➕ Centralizes expensive setup and gating in one place
  • ➕ Minimizes per-agent harness/workflow complexity long-term
  • ➖ Much larger scope than documentation; requires broader CLI/platform changes
  • ➖ Harder to land incrementally vs. a small protocol + follow-ups
3. Only document in the normative protocol doc, skip the ADR
  • ➕ Single source of truth for grammar/compat behavior
  • ➕ Avoids ADR churn for what could be a purely spec-level detail
  • ➖ Loses the explicit architectural decision record (why this approach vs env flags / CLI-absorption)
  • ➖ Makes it easier to re-litigate on each future agent/workflow PR

Recommendation: The PR’s approach (recording the architectural choice in an ADR and linking it from docs/architecture.md, while delegating field-level details to the normative spec) is the best fit: it captures the decision rationale once, keeps the detailed contract where it belongs, and supports cross-forge consistency without embedding per-agent gating logic in workflow YAML.

Files changed (2) +112 / -0

Documentation (2) +112 / -0
0072-pre-script-output-protocol.mdAdd ADR 0072 defining pre-script skip signalling via output file +106/-0

Add ADR 0072 defining pre-script skip signalling via output file

• Introduces an Accepted ADR documenting the shift from dual pre-script invocations with env-var skip flags to a single pre-script execution within 'fullsend run'. Defines the 'FULLSEND_PRESCRIPT_OUTPUT' mechanism at a high level and points to a normative spec for the exact protocol, along with consequences and related ADRs/issues.

docs/ADRs/0072-pre-script-output-protocol.md

architecture.mdLink ADR 0072 under Agent Harness decisions +6/-0

Link ADR 0072 under Agent Harness decisions

• Adds a bullet under the Agent Harness “Decided” section summarizing the pre-script skip signalling approach and linking to the normative protocol doc and ADR 0072.

docs/architecture.md

@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@qodo-code-review

qodo-code-review Bot commented Jul 15, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 📜 Skill insights (2)

Context used
✅ Compliance rules (platform): 54 rules

Grey Divider


Action required

1. ADR 0072 lacks context links 📜 Skill insight ⚙ Maintainability
Description
docs/ADRs/0072-pre-script-skip-flag-convention.md has a long Context section that does not link to
any docs/problems/* documents (despite relates_to listing agent-architecture and
agent-infrastructure) and does not cross-reference related ADRs in Context. This makes the ADR
harder to audit and violates the ADR context cross-referencing expectations.
Code

docs/ADRs/0072-pre-script-skip-flag-convention.md[R22-30]

+## Context
+
+An agent's harness `pre_script` runs once, immediately before sandbox creation, inside `fullsend run`. Some reusable workflows also need a fast pre-check *before* that point, to gate expensive setup (GCP credentials, bot identity, agent-env prep) that would otherwise run unconditionally on invalid input or a redundant retry. `reusable-code.yml` and `reusable-fix.yml` both do this today by calling the same pre-script inline, ahead of `fullsend run` — which means the script runs twice per invocation.
+
+Deleting the inline call is not always an option: for `code`, the inline step's `skipped=` output gates four downstream workflow steps that all run *before* `fullsend run` starts, so the check has to happen there. Running the pre-script's full body twice is wasteful at best (redundant tool installs) and unsafe at worst (repeated GitHub API side effects — label creation, issue comments — from the existing-human-PR check) ([fullsend-ai/fullsend#4718](https://github.com/fullsend-ai/fullsend/issues/4718)).
+
+## Options
+
+**Split into two scripts** (a lightweight inline "gate" script plus a harness-only "prepare" script) avoids a control flag and keeps each script single-purpose, but requires two entry points per agent to keep in sync and a bigger diff to introduce. **Env var skip-flag** reuses the single existing script and existing delivery mechanisms (`runner_env` / workflow step `env:`), at the cost of a conditional block inside the script. Chose the flag: smaller surface area, and it follows precedent — [ADR 0049](0049-agent-configuration-env-var-convention.md) already establishes `{AGENT}_{SETTING_NAME}` env vars as the standard way to signal harness-scoped behavior differences.
Relevance

⭐⭐ Medium

Team sometimes requests ADR cross-references (partially accepted in #2663, #2743); no evidence
requiring problem-doc links in Context.

PR-#2663
PR-#2743

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The ADR's Context section contains no links to the related problem docs and no related-ADR
cross-reference, while the frontmatter indicates the relevant problem areas and the text references
ADR 0049 outside Context. This violates the checklist requirements that Context links to problem
docs (instead of restating) and that related ADRs are cross-referenced in Context.

docs/ADRs/0072-pre-script-skip-flag-convention.md[22-27]
docs/ADRs/0072-pre-script-skip-flag-convention.md[4-6]
docs/ADRs/0072-pre-script-skip-flag-convention.md[30-30]
docs/problems/agent-architecture.md[1-12]
docs/problems/agent-infrastructure.md[1-16]
Skill: writing-adrs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
ADR 0072's `## Context` section does not link to the relevant problem docs and does not include an explicit cross-reference to related ADRs, even though the ADR declares `relates_to` entries and relies on ADR 0049.

## Issue Context
- The ADR frontmatter lists `relates_to: agent-architecture, agent-infrastructure`, which correspond to existing problem docs under `docs/problems/`.
- The ADR references ADR 0049 elsewhere, but the compliance rule requires related ADR cross-references in the Context section.

## Fix Focus Areas
- docs/ADRs/0072-pre-script-skip-flag-convention.md[22-30]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

2. ADR 0072 breaks template 📜 Skill insight ⚙ Maintainability
Description
ADR 0072 does not follow docs/ADRs/0000-adr-template.md exactly because it adds an extra `##
References` section and omits the template’s standard status-note comment block. This can cause ADR
lint/template checks and consistency expectations to fail.
Code

docs/ADRs/0072-pre-script-skip-flag-convention.md[R51-57]

+## References
+
+- [fullsend-ai/fullsend#4718](https://github.com/fullsend-ai/fullsend/issues/4718) — originating issue
+- [fullsend-ai/fullsend#5013](https://github.com/fullsend-ai/fullsend/pull/5013), [fullsend-ai/agents#175](https://github.com/fullsend-ai/agents/pull/175) — first implementation (`code`, `fix`)
+- [ADR 0049](0049-agent-configuration-env-var-convention.md) — env var naming precedent
+- [ADR 0024](0024-harness-definitions.md), [ADR 0045](0045-forge-portable-harness-schema.md) — `runner_env` / `env.runner` delivery mechanism
+- [ADR 0031](0031-reusable-workflows-for-action-installed-distribution.md) — reusable workflow structure
Relevance

⭐ Low

Template-exactness/extra sections not enforced; adding “References/Implementation” section was
explicitly rejected in ADR review (#2743).

PR-#2743

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The template enumerates the ADR structure and does not include a ## References section, while ADR
0072 adds ## References and does not include the template’s status-note comment block after `##
Status`. This is a direct mismatch with the template requirement.

docs/ADRs/0000-adr-template.md[14-41]
docs/ADRs/0072-pre-script-skip-flag-convention.md[18-23]
docs/ADRs/0072-pre-script-skip-flag-convention.md[51-57]
Skill: writing-adrs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
ADR 0072 deviates from the required ADR template by adding a non-template `## References` section and not including the template’s standard status-note comment block.

## Issue Context
The compliance checklist requires ADRs to follow `docs/ADRs/0000-adr-template.md` exactly.

## Fix Focus Areas
- docs/ADRs/0072-pre-script-skip-flag-convention.md[18-23]
- docs/ADRs/0072-pre-script-skip-flag-convention.md[51-57]
- docs/ADRs/0000-adr-template.md[14-41]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread docs/ADRs/0072-pre-script-skip-flag-convention.md Outdated
@fullsend-ai-review

fullsend-ai-review Bot commented Jul 15, 2026

Copy link
Copy Markdown

Looks good to me

Low

  • [intent-mischaracterization] PR body — The PR body describes recording the skip-flag convention from fix(#4718): wire GH_TOKEN and re-add fail-fast validation for pre-code/pre-fix #5013, but the ADR actually documents the pre-script output protocol that replaced it. The PR title is correct; the body hasn't been updated to match the rewritten ADR content.
  • [stale-plan-document] docs/plans/agent-extraction-to-agents-repo.md — Plan document describes extracting scripts/pre-code.sh and scripts/pre-fix.sh from the scaffold as future work, but ADR 0072 confirms this extraction has already been completed. The scripts now live only in fullsend-ai/agents.
Previous run

Looks good to me

Low

Previous run (2)

Looks good to me

Low

Previous run (3)

Looks good to me

Previous run (4)

Looks good to me

Previous run (5)

Review of #5016 — ADR 0072: pre-script skip-flag convention

Verdict: approve · 1 low finding

Summary

Clean docs-only ADR recording the {AGENT}_SKIP_{THING} skip-flag convention. The second commit addresses the prior review's finding — ADR 0055 is now properly cross-referenced and runner_env is contextualized as legacy. The ADR is well-structured, internally consistent, and correctly scoped.

What was checked

Dimension Result
Correctness ✅ All referenced ADRs (0024, 0031, 0045, 0049, 0055) verified against source. {AGENT}_SKIP_{THING} naming correctly follows ADR 0049's {AGENT}_{SETTING_NAME} syntax. Claims about code and fix agent skip-flag usage verified against reusable-code.yml and reusable-fix.yml. One minor factual inaccuracy in the Context section (see finding below).
Security ✅ No findings — clean docs-only change. No secrets, injection vectors, Unicode steganography, or permission changes.
Intent & coherence ✅ Traces to #4718. Scope matches: one new ADR + one architecture.md bullet. ADR number 0072 is correct (0070 is highest on main; 0071 claimed by open PR). Status is Accepted (correct for a new ADR per AGENTS.md). relates_to references valid problem docs. PR title follows COMMITS.md (docs type).
Style & conventions ✅ Frontmatter structure, section ordering, heading format, and relative link format match recent peer ADRs (0066–0070). The architecture.md bullet matches surrounding formatting.
Docs currency ✅ architecture.md updated in the correct section (Agent Harness > Decided). VitePress ADRs sidebar uses getMarkdownFiles() — auto-discovered, no config change needed. Prior review finding (ADR 0055 reference) addressed in second commit.
Cross-repo contracts ⏭ Skipped — no APIs, schemas, or exported interfaces modified.

Prior review finding status

Finding Status
Missing ADR 0055 reference for env.runner delivery mechanism (low) Addressed — second commit adds ADR 0055 cross-reference in both the Decision section ("runner_env on harnesses not yet migrated per ADR 0055") and the References section.

Findings

1. Context section overstates which gated steps run before fullsend run · low

File: docs/ADRs/0072-pre-script-skip-flag-convention.md (Context section)

The Context section states: "the inline step's skipped= output gates four downstream workflow steps that all run before fullsend run starts." In reusable-code.yml, the four gated steps are: (1) Setup GCP (line 167), (2) Resolve bot identity (line 175), (3) Setup agent environment (line 191), and (4) Run code agent (line 201). Step 4 is fullsend run — it does not run "before fullsend run starts." Only three of the four gated steps run before it; the fourth is the invocation itself.

The ADR's conclusion is still correct — the inline call cannot be removed because its skipped= output gates all four steps, including fullsend run itself. The imprecision is in characterizing all four as running "before" fullsend run.

Suggested follow-up: Rephrase to something like: "gates four downstream workflow steps — three setup steps and the fullsend run invocation itself — so the check has to happen there."

This is not blocking — the decision logic is unaffected.


Reviewed: 2026-07-16 · Re-review of 05871a092318d7 · Dimensions: correctness (opus), security (opus), intent (sonnet), style (sonnet), docs (sonnet) · Challenger pass: orchestrator


Labels: PR adds a new ADR documenting a harness pre-script convention and updates docs/architecture.md

Previous run (6)

Review of #5016 — ADR 0072: pre-script skip-flag convention

Verdict: approve · 1 low finding

Summary

Well-structured ADR that records the {AGENT}_SKIP_{THING} skip-flag convention for pre-scripts that run in both inline (reusable workflow) and harness pre_script contexts. The decision is clear, the scope is well-defined, and the ADR correctly differentiates skip flags from ADR 0049's user-facing config vars.

What was checked

Dimension Result
Correctness ✅ Internal logic is consistent. The {AGENT}_SKIP_{THING} naming genuinely follows ADR 0049's {AGENT}_{SETTING_NAME} syntax. All referenced ADRs (0024, 0031, 0045, 0049) exist. The code/fix examples correctly illustrate the "whichever invocation the pipeline depends on keeps default behavior" principle.
Security ✅ No findings — clean docs-only change. No secrets, injection vectors, or permission changes.
Intent & coherence ✅ Traces to #4718. Scope matches: one new ADR + one architecture.md bullet. ADR number 0072 is correct (0069 is highest on main; 0070–0071 claimed by open PRs). Status is Accepted (correct for a new ADR per AGENTS.md). relates_to references valid problem docs. PR title follows COMMITS.md (docs type).
Style & conventions ✅ Frontmatter structure, section ordering, and relative link format match recent peer ADRs (0067–0069). The architecture.md bullet matches surrounding formatting (no period before the ADR parenthetical, consistent with all other bullets in the section).
Docs currency ✅ architecture.md updated in the correct section (Agent Harness > Decided). VitePress ADRs sidebar uses getMarkdownFiles() — auto-discovered, no config change needed.
Cross-repo contracts ⏭ Skipped — no APIs, schemas, or exported interfaces modified.

Findings

1. Missing ADR 0055 reference for env.runner delivery mechanism · low

File: docs/ADRs/0072-pre-script-skip-flag-convention.md (References section)

The References section credits ADR 0024 and ADR 0045 for "runner_env / env.runner delivery mechanism," but env.runner was introduced by ADR 0055 (which deprecated runner_env). ADR 0024 defines runner_env; ADR 0045 defines the forge-portable schema — neither defines env.runner.

The architecture.md bullet for ADR 0055 (lines 112–116) sits directly above the new ADR 0072 bullet, so readers navigating from architecture.md have the deprecation context. However, readers arriving at the ADR directly would benefit from the reference.

Suggested follow-up: Add [ADR 0055](0055-unified-env-var-delivery.md) to the References line, e.g.:

- [ADR 0024](...), [ADR 0045](...), [ADR 0055](...) — `runner_env` (deprecated) / `env.runner` delivery mechanism

This is not blocking — the surrounding context in architecture.md and ADR 0049 already clarifies the deprecation.


Reviewed: 2026-07-15 · Dimensions: correctness (opus), security (opus), intent (sonnet), style (sonnet), docs (sonnet) · Challenger pass: opus


Labels: PR adds a new ADR documenting a harness pre-script convention and updates docs/architecture.md

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge component/docs User-facing documentation component/harness Agent harness, config, and skills loading labels Jul 15, 2026
waynesun09 added a commit that referenced this pull request Jul 15, 2026
Two fixes from ADR review of #5016:

- Cross-reference ADR 0055 (unified env var delivery, deprecates
  runner_env in favor of env.runner/env.sandbox) instead of naming
  runner_env and env.runner as interchangeable options with no
  guidance on which to prefer.
- Correct a Consequences bullet that implied removing the inline
  call only needs fullsend run to surface pre-script outputs earlier
  — Context already establishes the steps it gates run in an earlier
  workflow step position, so that alone wouldn't be sufficient;
  actually reordering those steps would be required too.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
waynesun09 added a commit that referenced this pull request Jul 16, 2026
Two fixes from ADR review of #5016:

- Cross-reference ADR 0055 (unified env var delivery, deprecates
  runner_env in favor of env.runner/env.sandbox) instead of naming
  runner_env and env.runner as interchangeable options with no
  guidance on which to prefer.
- Correct a Consequences bullet that implied removing the inline
  call only needs fullsend run to surface pre-script outputs earlier
  — Context already establishes the steps it gates run in an earlier
  workflow step position, so that alone wouldn't be sufficient;
  actually reordering those steps would be required too.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09
waynesun09 force-pushed the adr-agent-pre-script-gating branch from 69151a9 to 92318d7 Compare July 16, 2026 21:39
@fullsend-ai-review

fullsend-ai-review Bot commented Jul 16, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 9:40 PM UTC · Ended 9:50 PM UTC
Commit: 12bd957 · View workflow run →

@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Site preview

Preview: https://d435deff-site.fullsend-ai.workers.dev

Commit: 41835e6131f9607e42ebc648adb53f10ee09c596

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge and removed ready-for-merge All reviewers approved — ready to merge labels Jul 16, 2026
Comment thread docs/ADRs/0072-pre-script-skip-flag-convention.md Outdated
Comment thread docs/ADRs/0072-pre-script-skip-flag-convention.md Outdated
Comment thread docs/ADRs/0072-pre-script-skip-flag-convention.md Outdated
Records the pattern introduced in #5013/fullsend-ai/agents#175 so the
next agent that needs to gate expensive workflow setup behind a fast
pre-check (per rh-hemartin's request for consistency across agents,
one: an {AGENT}_SKIP_{THING} env var, set on whichever of the two
pre-script call sites should skip the redundant/expensive part.

Distinguishes this from ADR 0049's agent-configuration env vars —
same {AGENT}_{SETTING} syntax, but an internal invocation-context
signal rather than a user-facing behavioral knob, so it belongs in
script/harness comments, not docs/agents/<agent>.md.

Scopes the decision to agents that actually need workflow-level
gating (code, fix today) rather than mandating it retroactively for
agents that don't currently duplicate pre-script execution.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
Two fixes from ADR review of #5016:

- Cross-reference ADR 0055 (unified env var delivery, deprecates
  runner_env in favor of env.runner/env.sandbox) instead of naming
  runner_env and env.runner as interchangeable options with no
  guidance on which to prefer.
- Correct a Consequences bullet that implied removing the inline
  call only needs fullsend run to surface pre-script outputs earlier
  — Context already establishes the steps it gates run in an earlier
  workflow step position, so that alone wouldn't be sufficient;
  actually reordering those steps would be required too.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
The skip-flag convention this ADR originally recorded was withdrawn
after review (#5013 and agents#175 closed as superseded). Rewrite the
ADR — still unmerged, so immutability does not apply — to record the
decision that replaced it: pre-scripts run exactly once, inside
fullsend run, signalling skips via the pre-script output protocol
shipped in #5737, with the field-level contract in
docs/normative/prescript-output/v1.

Addresses the review feedback on this PR: options are now one
paragraph each with the decision and its reasons in the Decision
section; the gating no longer lives in GH workflow YAML at all; and no
variables pass between invocations, dissolving the portability concern
rather than specifying a mechanism for it. The non-template References
section is folded into inline links.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09 waynesun09 changed the title docs(#4718): add ADR 0072 for the pre-script skip-flag convention docs(#4718): add ADR 0072 for the pre-script output protocol Jul 29, 2026
manish-jangra added a commit to manish-jangra/fullsend that referenced this pull request Jul 31, 2026
- Renumber to 0079 to avoid collision with PR fullsend-ai#2791 (ADR 0071
  auto-merge) and PR fullsend-ai#5016 (ADR 0072 pre-script output protocol)
- Replace deprecated runner_env with env.runner/env.sandbox per ADR 0055
- Remove incorrect ADR 0045 forge: citation for Jira-aware behavior
- Narrow Consequences claim to Jira-token portion of ADR 0063's open
  question
- Soften idempotent assertion to intended contract
- Add missing ADR 0063 cross-reference in architecture.md

Signed-off-by: Manish Kumar <30774250+manish-jangra@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Pre-scripts can no longer mint their own tokens since #5837 stripped the
OIDC mint credentials from the pre-script environment (#5832, enforcing
ADR 0073). Record it as a consequence annotation so the open forge-call
ownership question reads as token possession, not minting capability.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09

Copy link
Copy Markdown
Member Author

Added one consequence bullet (2e37656): since acceptance of this direction, #5837 (#5832) stripped the OIDC mint credentials from the pre-script environment, enforcing ADR 0073's harness-as-sole-minter intent at this boundary. Recorded as an annotation so the deliberately-open forge-call ownership bullet now reads as a question of token possession — scripts can no longer mint their own. No changes to Context/Options/Decision.

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 3, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:59 PM UTC · Completed 2:14 PM UTC
Commit: 2e37656 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@ralphbean ralphbean left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. One non-blocking note inline.

Comment thread docs/ADRs/0072-pre-script-output-protocol.md
The ADR tracked the deferred setup-absorption option on #4718 itself;
now that #4718 is closing out, #5870 is the standing tracker.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@waynesun09

Copy link
Copy Markdown
Member Author

One more small commit (80e3afe): ADR 0072's Consequences pointed Option C's tracking at #4718 itself, which is now closing out — the deferral now points at the standing tracker #5870 (filed today). No other changes.

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 3, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:24 PM UTC · Completed 7:37 PM UTC
Commit: 80e3afe · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

The frontmatter names agent-architecture and agent-infrastructure but
the Context never linked either, so the connection wasn't visible from
the text.

Assisted-by: Claude
Signed-off-by: Wayne Sun <gsun@redhat.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 3, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:55 PM UTC · Completed 8:10 PM UTC
Commit: 41835e6 · View workflow run →

@waynesun09
waynesun09 dismissed ifireball’s stale review August 4, 2026 13:07

Dismissing stale changes-requested review — all raised points (context cross-references, four-steps inaccuracy, option/decision structure, variable-passing mechanism) were addressed in follow-up commits a395c37 and 41835e6, per inline replies.

@waynesun09
waynesun09 added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit 85e729e Aug 4, 2026
18 checks passed
@waynesun09
waynesun09 deleted the adr-agent-pre-script-gating branch August 4, 2026 13:14
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 1:16 PM UTC · Completed 1:34 PM UTC
Commit: 41835e6 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #5016 — ADR 0072 (Pre-Script Output Protocol)

Timeline

This was a human-authored ADR by waynesun09 that underwent a fundamental rewrite during review:

  1. Jul 15: PR opened with ADR documenting the {AGENT}_SKIP_{THING} skip-flag convention. Review agent (run 29421508548) approved with useful low findings (missing ADR 0055 reference). qodo-code-review flagged missing context links.
  2. Jul 16: Review agent ran again (run 29536856541), approved with a genuine factual inaccuracy finding — the Context section claimed four steps run before fullsend run, but only three do.
  3. Jul 21: Human reviewer ifireball requested changes on three substantive grounds: (a) too much functionality in GH workflow, harming portability; (b) options and decisions mixed into a single dense paragraph; (c) unspecified variable-passing mechanism for dual-invocation. These were design-level concerns the review agent had not identified.
  4. Jul 29: Author rewrote the ADR from scratch, pivoting to the pre-script output protocol direction that had replaced skip-flags. File renamed to 0072-pre-script-output-protocol.md.
  5. Jul 30 – Aug 3: Review agent approved across 5 more runs. ralphbean approved with one noterelates_to frontmatter wasn't linked from Context text. Author addressed it.
  6. Aug 4: PR merged.

Review Agent Assessment

7 review runs at $3–4 each ($21–28 total) for a 2-file documentation PR.

What worked well:

  • The agent correctly recognized the fundamental rewrite (filename change, entirely different content) and did a fresh review rather than anchoring to stale prior findings.
  • Appropriate dimension skipping: security and cross-repo-contracts excluded for the docs-only rewrite. Model allocation cost-optimized (opus for correctness, sonnet for lighter dimensions).
  • The factual inaccuracy finding (3 vs 4 steps) was genuinely useful — the correctness sub-agent verified the claim against reusable-code.yml source code.

Gaps:

  • The agent approved twice before ifireball identified architectural concerns that drove a complete rewrite. The portability concern required understanding the project's forge-agnosticism goals (ADR 0061) — design-level context the agent didn't bring to bear.
  • Three runs on Aug 3 (run 30820511341, run 30845596214, run 30847806131) reviewed single-line incremental changes (consequence bullet, tracking pointer, link fix) with diminishing returns.

Existing Issue Evidence

All identified improvements are covered by open issues. New evidence from this PR:

  • fullsend#2599 (per-PR review budget) / fullsend#4069 (reduce frequency during rapid iterations): Three review runs in 6 hours on Aug 3 for trivial single-line documentation changes, costing ~$9–12 for near-zero incremental value.
  • fullsend#1469 (assess feature-level design) / fullsend#1480 (shallow doc feedback): The agent approved twice before ifireball caught fundamental architectural concerns (portability, structural clarity) that drove a complete rewrite.
  • agents#373 (skip irrelevant dimensions for docs-only PRs): The agent already skipped security and cross-repo-contracts for the rewritten version, but running correctness (opus model) repeatedly on small documentation tweaks is costly relative to value.
  • fullsend#1906 (detect omissions in ADRs by exploring project context): The agent didn't cross-check the proposed approach against existing architectural ADRs (like ADR 0061 on forge-agnosticism) that constrain design choices.

Autonomy Assessment

The review agent reliably verified documentation surface quality (factual accuracy, cross-references, style compliance). Post-rewrite approvals were correct. However, the pre-rewrite approvals were premature — the design was flawed in ways only human architectural judgment identified. Increased autonomy for ADR reviews is not warranted until the design-level review gap (fullsend#1469) is addressed.

No New Proposals

No new proposals filed — all improvement areas are well-covered by existing open issues referenced above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/docs User-facing documentation component/harness Agent harness, config, and skills loading ready-for-merge All reviewers approved — ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants