Skip to content

docs(#345): prioritize user-focused documentation - #389

Merged
rh-hemartin merged 3 commits into
mainfrom
agent/345-user-focused-docs
Jul 24, 2026
Merged

docs(#345): prioritize user-focused documentation#389
rh-hemartin merged 3 commits into
mainfrom
agent/345-user-focused-docs

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Summary

Restructures all 7 agent documentation files (docs/*.md) to separate content by audience:

  • User section (top): Triggers, commands, control labels, and observable behavior — no references to scripts, JSON, sandboxes, schemas, or internal mechanics
  • Admin/Configuration section (middle): Skill overrides, environment variables, and behavior tuning
  • Developer/Internals section (bottom): Architecture details, pipeline descriptions, and implementation notes

Changes

  • Added dedicated Triggers section to each doc, extracting activation events from prose into scannable lists
  • Moved How the agent works from the top to the bottom of each file
  • Removed internal terms (post-script, sandbox, JSON, schema, harness, structured output, OpenShell) from user-facing sections
  • Renamed "Configuration and extension" to "Configuration" for clarity
  • Cleaned control label descriptions to describe behavior without exposing implementation mechanics (e.g., "the issue is closed automatically" instead of "the post-script closes the issue")
  • For fix.md: extracted user-facing content (what the agent reads, URL limitations, iteration limits) from the internals section into the user section with internal terms replaced by user-friendly language

All information is preserved — internal details are relocated to the bottom of each file, not removed.

Test plan

  • Verified the pre-existing prerequisites-creates-allowed-issue test failure in post-triage-test.sh is unrelated to documentation changes (fails on main as well)
  • Secret scan passed on all 7 changed files
  • Gitlint validation passed
  • Verify each doc's user section (before "Configuration" heading) contains no implementation-specific terms
  • Verify all internal cross-references and anchor links still resolve correctly

Closes #345

Post-script verification

  • Branch is not main/master (agent/345-user-focused-docs)
  • Secret scan passed (gitleaks — 0bb70d1e627c86c108c2ecfd7fae8b52df2c1c5c..HEAD)
  • PR body secret scan passed (gitleaks — no-git)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

Restructure all 7 agent doc files to separate content by
audience. Each file now follows a consistent hierarchy:

User section (top) — triggers, commands, control labels,
and observable behavior with no references to scripts,
JSON, sandboxes, schemas, or internal mechanics.

Configuration section (middle) — skill overrides, env
vars, and behavior tuning for admins.

How the agent works section (bottom) — architecture and
implementation details for developers.

Key changes across all files:
- Add dedicated Triggers section extracting activation
  events from prose into a scannable list
- Move "How the agent works" from top to bottom
- Remove internal terms (post-script, sandbox, JSON,
  schema, harness) from user-facing sections
- Rename "Configuration and extension" to "Configuration"
- Clean control label descriptions to describe behavior
  without exposing implementation mechanics

For fix.md specifically, extract user-facing content
(what the agent reads, URL limitations, iteration limits)
from the internals section into the user section with
internal terms replaced by user-friendly language.

Closes #345
@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner July 23, 2026 08:06

@rh-hemartin rh-hemartin 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.

I think it did well here, LGTM

@rh-hemartin

Copy link
Copy Markdown
Member

/fs-review

@fullsend-ai-review

fullsend-ai-review Bot commented Jul 23, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 8:23 AM UTC · Completed 8:45 AM UTC
Commit: 7ada4e0 · View workflow run →

@fullsend-ai-review

Copy link
Copy Markdown

Review

Findings

Low

  • [documentation-structure] docs/triage.md — The Configuration section is missing the standard boilerplate text ("See Customizing with AGENTS.md ... and Customizing with Skills ...") that other agent docs include above their subsections. The section has substantive content (the issue-labels skill subsection) but omits the intro text and a ### Variables subsection present in all other agent docs.
  • [internal-consistency] docs/fix.md:117 — fix.md states "The fix agent follows the same pipeline as the code agent:" then lists a 4-step pipeline including a validation loop. code.md describes only a 3-step pipeline without the validation loop. The cross-reference claim is inconsistent with the documented steps.
  • [information-loss] docs/review.md:80 — The old text described a defense-in-depth filtering model (agent-level + post-script level). The new text simplifies to "Findings below this level are omitted" without the dual-filter explanation. Not blocking — the simplified text is accurate, but administrators may miss that two independent filters exist.
  • [voice-consistency] docs/code.md — Inconsistent voice in Control labels table. The ready-to-code entry uses active voice with agent attribution ("Applied by the triage agent...") while ready-for-review uses passive voice without attribution ("Applied after a PR is pushed").
  • [voice-consistency] docs/review.md — Same inconsistency pattern: ready-for-review uses active voice with agent attribution ("Applied by the code agent after pushing"), while rejected uses passive voice ("the PR was closed").

Labels: PR modifies documentation files exclusively (docs/*.md)

Comment thread docs/fix.md
Comment thread docs/review.md
@fullsend-ai-review fullsend-ai-review Bot added ready-for-merge All reviewers approved — ready to merge documentation Improvements or additions to documentation labels Jul 23, 2026
@rh-hemartin

Copy link
Copy Markdown
Member

/fs-fix

@fullsend-ai-coder

fullsend-ai-coder Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 1:06 PM UTC · Completed 1:12 PM UTC
Commit: 7ada4e0 · View workflow run →

- triage.md: add missing Configuration boilerplate and Variables subsection
- fix.md: soften pipeline cross-reference to "similar pipeline" since fix
  has a 4-step pipeline vs code agent's 3-step
- review.md: restore dual-filter defense-in-depth description for severity
  threshold variable
- code.md: use active voice with agent attribution for ready-for-review label
- review.md: use active voice for rejected label description

Addresses review feedback on #389
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (human-triggered)

Addressed all 5 review findings: added missing boilerplate and Variables subsection to triage.md, softened fix.md pipeline cross-reference, restored dual-filter defense-in-depth info in review.md, and fixed voice consistency in code.md and review.md control label tables.

Fixed (5):

  1. documentation-structure: triage.md missing Configuration boilerplate and Variables subsection (docs/triage.md): Added standard 'See Customizing with AGENTS.md ... and Customizing with Skills ...' boilerplate text above the Skill subsection, and added '### Variables' subsection (None) after the Skill subsection, matching the pattern in all other agent docs.
  2. internal-consistency: fix.md claims same pipeline as code.md but lists 4 steps vs 3 (docs/fix.md): Changed 'follows the same pipeline as the code agent:' to 'follows a similar pipeline to the code agent, with an additional validation step:' to accurately reflect the 4-step pipeline (vs code agent's 3-step).
  3. information-loss: review.md severity threshold description lost dual-filter explanation (docs/review.md): Restored defense-in-depth information in the REVIEW_FINDING_SEVERITY_THRESHOLD variable description: 'Findings below this level are filtered out at two independent stages (agent output and post-review processing) as defense-in-depth.' Avoids internal terms (post-script, structured findings array) while preserving the dual-filter concept for administrators.
  4. voice-consistency: code.md ready-for-review label uses passive voice while ready-to-code uses active (docs/code.md): Changed 'Applied after a PR is pushed' to 'Applied by the code agent after pushing a PR' to match the active-voice-with-agent-attribution pattern used by the ready-to-code entry.
  5. voice-consistency: review.md rejected label uses passive voice while ready-for-review uses active (docs/review.md): Changed 'the PR was closed' to 'closed it' so the sentence reads 'The review agent rejected the PR and closed it.' -- matching the active voice pattern used by other label entries.

Tests: passed

Updated by fullsend fix agent

@deboer-tim deboer-tim left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Two minor comments it would be good to address, but overall this is much better separation and avoids using implementation details in the end-user docs. 👍🏼

Comment thread docs/code.md Outdated
Comment thread docs/scribe.md Outdated
@rh-hemartin

Copy link
Copy Markdown
Member

/fs-fix

@fullsend-ai-coder

fullsend-ai-coder Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 6:56 AM UTC · Completed 7:01 AM UTC
Commit: 9eb98e2 · View workflow run →

- code.md: remove automatic/manual distinction from Triggers section;
  both label-apply and /fs-code are human-initiated, present them equally
- scribe.md: clarify summary line per reviewer suggestion ("adds comments
  to relevant issues or creates new issues")

Addresses review feedback on #389
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 2 (human-triggered)

Addressed 2 reviewer nits from deboer-tim: removed false automatic/manual distinction in code.md Triggers section, and clarified scribe.md summary line.

Fixed (2):

  1. code.md Triggers section falsely distinguishes automatic vs manual (docs/code.md): Removed automatic/manual framing from Triggers section. Both label-apply and /fs-code are human-initiated actions — now presented equally in a single sentence: 'The code agent is triggered when the ready-to-code label is applied to an issue, or via the /fs-code command.'
  2. scribe.md summary line unclear ('posts comments or new issues') (docs/scribe.md): Changed summary to 'adds comments to relevant issues or creates new issues' per reviewer suggestion, clarifying what kind of comments and distinguishing comment-on-existing from create-new.

Tests: passed

Updated by fullsend fix agent

@rh-hemartin
rh-hemartin enabled auto-merge July 24, 2026 07:06
@rh-hemartin
rh-hemartin added this pull request to the merge queue Jul 24, 2026
Merged via the queue into main with commit e329371 Jul 24, 2026
11 checks passed
@rh-hemartin
rh-hemartin deleted the agent/345-user-focused-docs branch July 24, 2026 07:14
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jul 24, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 7:16 AM UTC · Completed 7:29 AM UTC
Commit: 1b5a78f · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #389 — docs(#345): prioritize user-focused documentation

Timeline

Time (UTC) Event Agent cost
Jul 21 21:18 Issue #345 opened by deboer-tim
Jul 23 07:48 /fs-triage triggered by rh-hemartin
Jul 23 07:49–07:53 Triage agent (run 29989310554) — clear structured guidance
Jul 23 07:53–08:07 Code agent (run 29989548155) — restructured 7 docs files, created PR #389 $3.66
Jul 23 08:21 rh-hemartin approves, triggers /fs-review
Jul 23 08:22–08:45 Review agent (run 29990996895) — 5 low findings, APPROVE $4.97
Jul 23 13:04–13:12 Fix agent iter 1 (run 30009644436) — addressed all 5 review findings $1.72
Jul 23 15:05–15:14 deboer-tim reviews with 2 minor nits
Jul 24 06:55–07:01 Fix agent iter 2 (run 30073721359) — addressed 2 human nits $1.38
Jul 24 07:14 PR merged

Total agent cost: ~$11.73 across 4 agent invocations (~35 min active time).

Assessment

This workflow executed well. The triage agent produced clear, specific guidance with concrete validation criteria. The code agent delivered solid initial work across 7 files. The review agent found 5 valid low-severity issues — all actionable, none false positives. The fix agent addressed both automated review findings and human reviewer nits efficiently across two iterations.

The human reviewer (deboer-tim) contributed 2 editorial nits: (1) the code agent introduced a misleading distinction between "automatic" label triggers and "manual" /fs-code commands when both are human-initiated, and (2) a wording clarity improvement in scribe.md. These required domain knowledge the review agent lacked.

Evidence for existing open issues

  • #373 (skip irrelevant review dimensions for docs-only PRs): The review agent spent $4.97 dispatching correctness, style-conventions, and intent-coherence sub-agents plus a challenger on a pure documentation restructuring PR. Skipping correctness and potentially other dimensions could have reduced cost by 25–50%.
  • #387 (code agent should verify documentation claims against source files): The code agent introduced a false automatic/manual trigger distinction in code.md that only a human with domain knowledge caught. Verifying trigger behavior against source would have prevented this.
  • #286 (code agent should run issue-defined verification commands): The triage agent produced specific validation criteria ("verify no implementation-specific terms in user sections") that the code agent did not self-check. Running these as a pre-submit step could have caught the missing Configuration section in triage.md.
  • #407 (fix-review skill should fetch review findings from API when pre-fetched body is empty): Fix iteration 1 received an empty pre-fetched review body (1 byte) because the fix was human-triggered, yet the fix agent still addressed all 5 findings — suggesting a working fallback path exists, but the pre-fetch gap is real.

Proposals filed

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

Labels

documentation Improvements or additions to documentation ready-for-merge All reviewers approved — ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Prioritize user-focused documentation

2 participants