Skip to content

feat(docs): pull agent documentation from fullsend-ai/agents - #6953

Open
rh-hemartin wants to merge 1 commit into
mainfrom
feat/inject-agents
Open

feat(docs): pull agent documentation from fullsend-ai/agents#6953
rh-hemartin wants to merge 1 commit into
mainfrom
feat/inject-agents

Conversation

@rh-hemartin

@rh-hemartin rh-hemartin commented Sep 3, 2026

Copy link
Copy Markdown
Member

Summary

Add fullsend-ai/agents as a git submodule and serve its docs/ folder from docs/agents on the documentation site, so agent pages stay in sync with the agents repo instead of being copied by hand.

Related Issue

Closes #5710

Changes

  • Add the agents submodule at the repo root and replace docs/agents with a symlink to agents/docs
  • Auto-discover agent pages in the VitePress sidebar via getMarkdownFiles
  • Move default-vs-custom and escalation-ladder pages into docs/guides/user/
  • Rebuild the docs site when agents/ changes, matching the existing experiments/ path filters

Testing

  • make lint passes (stage changes first, then run)
  • Tests added/updated for new or modified logic

Checklist

  • PR title follows Conventional Commits (correct type, ! for breaking changes)
  • Commits are signed off (DCO) — human and human-directed agent sessions only
  • I wrote this contribution myself and can explain all changes in it

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 3, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 10:19 AM UTC · Ended 10:40 AM UTC

Commit: f7c716f · View workflow run →

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Source agent docs from the fullsend-ai/agents submodule

✨ Enhancement 📝 Documentation ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Sources agent reference pages from a pinned fullsend-ai/agents submodule through docs/agents.
• Auto-discovers agent sidebar entries and keeps customization guides in local user documentation.
• Rebuilds documentation whenever the agents submodule or its contents change.
Diagram

graph TD
  A["Agents Repository"] -->|pinned commit| B["Agents Submodule"] -->|docs source| C["Docs Symlink"] -->|markdown| D["VitePress Build"] --> E["Docs Site"]
  F["VitePress Config"] -->|discovers pages| D
  G["Site Workflow"] -->|runs on changes| D
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Build-time repository checkout
  • ➕ Avoids a permanent git submodule and symlink in contributor checkouts.
  • ➕ Can select a branch or tag independently during the documentation build.
  • ➖ Requires additional CI authentication and checkout logic.
  • ➖ Following a branch would make builds non-reproducible unless the commit is explicitly pinned.
  • ➖ Local documentation builds would need equivalent bootstrap tooling.
2. Git subtree import
  • ➕ Produces ordinary files that work without submodule initialization or symlink support.
  • ➕ Keeps local and CI documentation builds self-contained.
  • ➖ Reintroduces imported copies into the main repository.
  • ➖ Subtree updates create large synchronization commits and obscure upstream ownership.
  • ➖ Automated sidebar discovery would still be required.

Recommendation: The pinned submodule and symlink are the best fit because they preserve upstream ownership while keeping site builds reproducible. Explicit submodule updates are preferable to following the upstream branch implicitly; the existing build already initializes submodules, limiting additional CI complexity.

Files changed (7) +19 / -14

Enhancement (1) +6 / -10
config.tsDiscover agent pages and relocate customization navigation +6/-10

Discover agent pages and relocate customization navigation

• Replaces the hardcoded agent page list with getMarkdownFiles-based discovery from docs/agents. Adds the default-versus-custom and escalation-ladder guides under the Customizing Agents sidebar group.

docs/.vitepress/config.ts

Documentation (2) +4 / -4
default-vs-custom-agents.mdMove agent classification guidance into user guides +0/-0

Move agent classification guidance into user guides

• Relocates the default, derived, and custom agent classification page from the agent reference area into the local user-guide hierarchy.

docs/guides/user/default-vs-custom-agents.md

escalation-ladder.mdMove escalation guidance and repair sibling links +4/-4

Move escalation guidance and repair sibling links

• Relocates the agent customization escalation ladder into user guides. Updates references to target the renamed default-vs-custom-agents page in the same directory.

docs/guides/user/escalation-ladder.md

Other (4) +9 / -0
site-build.ymlRebuild the site for agents submodule changes +4/-0

Rebuild the site for agents submodule changes

• Adds the agents gitlink and descendant paths to pull-request and main-branch path filters. Documentation builds now run when the pinned agent documentation source changes.

.github/workflows/site-build.yml

.gitmodulesRegister the fullsend-ai/agents submodule +3/-0

Register the fullsend-ai/agents submodule

• Defines the root-level agents submodule using the fullsend-ai/agents GitHub repository as its source.

.gitmodules

agentsPin the agents documentation repository +1/-0

Pin the agents documentation repository

• Adds the agents gitlink pinned to commit 81b0e9bde0fae533bb4e26a731c0bca343340d79.

agents

agentsLink VitePress to upstream agent documentation +1/-0

Link VitePress to upstream agent documentation

• Replaces the locally maintained agent documentation directory with a symlink to the agents submodule's docs directory.

docs/agents

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📜 Skill insights (4)

Grey Divider


Action required

1. Moved guides omit prerequisites 📜 Skill insight ✧ Quality
Description
The newly registered escalation-ladder.md guide immediately instructs readers to follow a
four-level procedure but has no clearly labeled prerequisites section. Readers are not told what
access, configuration, or knowledge they need before beginning Level 1.
Code

docs/.vitepress/config.ts[274]

+                { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },
Relevance

●●● Strong

Recent guide reviews accepted adding clearly labeled prerequisites before procedural instructions.

PR-#2663
PR-#6455

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Rule 1062078 requires a prerequisites section before procedural steps. The sidebar addition
registers the document as a user guide, while its opening proceeds directly from a status callout to
instructions to start at Level 1 without any prerequisites section.

docs/.vitepress/config.ts[270-274]
docs/guides/user/escalation-ladder.md[1-20]
Skill: writing-user-docs

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

## Issue description
The newly placed escalation-ladder guide contains a procedural escalation path without a clearly labeled prerequisites section.

## Issue Context
PR Compliance ID 1062078 requires every guide to state prerequisites before its procedure begins.

## Fix Focus Areas
- docs/guides/user/escalation-ladder.md[1-20]

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


2. New guides missing index entries 📜 Skill insight ⚙ Maintainability
Description
The PR adds sidebar entries for default-vs-custom-agents.md and escalation-ladder.md under
docs/guides/user/ without updating docs/guides/README.md. The guide index still links to the
removed docs/agents/topics/default-vs-custom.md location and contains no escalation-ladder entry.
Code

docs/.vitepress/config.ts[R270-274]

+                {
+                  text: "Default, derived and custom agents",
+                  link: "/guides/user/default-vs-custom-agents.md",
+                },
+                { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },
Relevance

●●● Strong

Recent accepted precedents require new guides to appear in README indexes.

PR-#5778
PR-#2549

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Rule 1062084 requires new guides to be included in docs/guides/README.md. The sidebar adds both
user-guide paths, while the index retains the former agents/topics path and does not list the
escalation guide.

docs/.vitepress/config.ts[270-274]
docs/guides/README.md[43-58]
Skill: writing-user-docs

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

## Issue description
Two guides were introduced under `docs/guides/user/`, but the guide index was not updated for their new locations.

## Issue Context
PR Compliance ID 1062084 requires `docs/guides/README.md` to be updated whenever a guide is added. Replace the stale topics link and add an entry for the escalation ladder.

## Fix Focus Areas
- docs/guides/README.md[43-58]
- docs/.vitepress/config.ts[270-274]

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


3. Moved guide links are broken 📜 Skill insight ≡ Correctness
Description
The guides retain relative links written for their former docs/agents/topics/ location, so links
such as ../../guides/user/... now resolve under nonexistent docs/guides/guides/user/, while the
two ../ links in default-vs-custom-agents.md resolve to the Guides index instead of the Agents
reference. Consequently, multiple customization and agent-reference links lead users to missing
pages or the wrong documentation section.
Code

docs/.vitepress/config.ts[R270-274]

+                {
+                  text: "Default, derived and custom agents",
+                  link: "/guides/user/default-vs-custom-agents.md",
+                },
+                { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },
Relevance

●●● Strong

Broken relative documentation links are consistently accepted, including after guide moves.

PR-#601
PR-#226

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Rule 1062085 requires every internal guide link to resolve, and the sidebar establishes the new
/guides/user/default-vs-custom-agents location. From docs/guides/user/, retained
../../guides/user/... links resolve into the nonexistent docs/guides/guides/user/ directory,
while ../ resolves to docs/guides/ even though the actual Agents reference is exposed at
docs/agents.

docs/.vitepress/config.ts[270-274]
docs/guides/user/default-vs-custom-agents.md[73-73]
docs/guides/user/escalation-ladder.md[43-50]
docs/.vitepress/config.ts[270-273]
docs/guides/user/default-vs-custom-agents.md[45-49]
docs/guides/user/default-vs-custom-agents.md[89-95]
docs/guides/README.md[1-5]
docs/agents[1-1]
Skill: writing-user-docs

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

## Issue description
Correct the relative links retained from the guides' former directory so that sibling user-guide links resolve within `docs/guides/user/` and agent-reference links resolve to `docs/agents/`, rather than to nonexistent paths or the Guides index.

## Issue Context
These guides moved from `docs/agents/topics/` to `docs/guides/user/`, but some links still use traversal calculated from the old location. From the new directory, `../../guides/user/...` resolves under nonexistent `docs/guides/guides/user/`, and `../` resolves to `docs/guides/` rather than the Agents reference at `docs/agents/`.

## Fix Focus Areas
- docs/guides/user/default-vs-custom-agents.md[45-53]
- docs/guides/user/default-vs-custom-agents.md[89-103]
- docs/guides/user/escalation-ladder.md[41-50]
- docs/guides/user/escalation-ladder.md[183-194]

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


View high (1)
4. Moved pages break inbound links 🐞 Bug ≡ Correctness
Description
Seventeen existing documentation links still target /agents/topics/default-vs-custom or
/agents/topics/escalation-ladder, but replacing docs/agents with the submodule symlink removes
those pages while their replacements are published under /guides/user/. These links now lead to
nonexistent pages.
Code

docs/agents[1]

+../agents/docs/
Relevance

●●● Strong

Broken internal documentation links are accepted correctness findings when destinations move or
filenames change.

PR-#601
PR-#226

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The symlink replaces the former local agents tree, and the sidebar publishes the moved pages under
/guides/user/. The cited files retain links to the old /agents/topics/ paths, so their
destinations no longer exist.

docs/agents[1-1]
docs/.vitepress/config.ts[270-274]
docs/cli/agent.md[121-121]
docs/glossary.md[48-75]
docs/guides/README.md[57-57]
docs/guides/user/adoption.md[94-94]
docs/guides/user/bring-your-own-agent.md[381-382]
docs/guides/user/building-custom-agents.md[12-14]
docs/guides/user/customizing-agents.md[398-399]
docs/guides/user/customizing-overview.md[129-130]
docs/guides/user/customizing-with-agents-md.md[153-153]
docs/guides/user/customizing-with-skills.md[197-197]

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

## Issue description
Update every internal link that still targets the removed `agents/topics/default-vs-custom.md` or `agents/topics/escalation-ladder.md` routes so it points to the corresponding page under `guides/user/`.

## Issue Context
`docs/agents` is now backed by the agents submodule, while these two pages were moved into `docs/guides/user/`. Existing inbound links were not migrated.

## Fix Focus Areas
- docs/cli/agent.md[121-121]
- docs/glossary.md[48-75]
- docs/guides/README.md[57-57]
- docs/guides/user/adoption.md[94-94]
- docs/guides/user/bring-your-own-agent.md[381-382]
- docs/guides/user/building-custom-agents.md[12-14]
- docs/guides/user/customizing-agents.md[398-399]
- docs/guides/user/customizing-overview.md[129-130]
- docs/guides/user/customizing-with-agents-md.md[153-153]
- docs/guides/user/customizing-with-skills.md[197-197]

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



Remediation recommended

5. escalation-ladder procedure is unnumbered 📜 Skill insight ✧ Quality
Description
The guide tells readers to start at Level 1 and move through four levels, but presents the sequence
as prose, a code block, and separate headings rather than an ordered list. This makes the newly
introduced guide path noncompliant with the required procedure format.
Code

docs/.vitepress/config.ts[274]

+                { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },
Relevance

●●● Strong

Reviewers repeatedly accepted converting procedural prose and code blocks into ordered steps.

PR-#2277
PR-#2663

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Rule 1062079 requires procedural guide content to use ordered lists. The registered guide describes
an ordered escalation path but renders its four levels in a fenced block and prose before continuing
with level headings.

docs/.vitepress/config.ts[274-274]
docs/guides/user/escalation-ladder.md[8-34]
Skill: writing-user-docs

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

## Issue description
The escalation procedure is expressed through narrative prose, a code block, and headings instead of numbered procedural steps.

## Issue Context
The guide explicitly directs readers to begin at Level 1 and move upward, so the four levels form an ordered procedure under PR Compliance ID 1062079.

## Fix Focus Areas
- docs/guides/user/escalation-ladder.md[8-40]

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


6. Per-org removal unmentioned 📘 Rule violation § Compliance
Description
The replacement of docs/agents deletes documentation that explicitly discusses deprecated per-org
installation mode, but the PR description does not mention that impact or ADR 0044. The checklist
requires even removals of per-org-mode content to be called out explicitly.
Code

docs/agents/triage.md[77]

-**Defaults:** At install time, fullsend populates this with your org (in org mode — **deprecated**, see [ADR 0044](../ADRs/0044-deprecate-per-org-installation-mode.md)) or your repo (in per-repo mode), plus `fullsend-ai/fullsend` as an upstream target.
Relevance

●● Moderate

Deprecation documentation is enforced, but no close precedent confirms requiring PR-description
disclosure for removals.

PR-#5462
PR-#2743

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Rule 2795055 applies to removals as well as extensions or refactors and requires the PR description
to mention deprecated per-org installation mode and ADR 0044. The deleted triage documentation
explicitly contained both an org-mode reference and an ADR 0044 link, while the supplied PR
description discusses only the submodule and documentation synchronization.

Rule 2795055: Flag and avoid changes to deprecated per-org installation mode content (ADR 0044)


Grey Divider

Context sources
✅ Compliance rules (platform): 65 rules
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can add REVIEW.md to your repo root and Qodo follows it on every PR

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread docs/.vitepress/config.ts
text: "Default, derived and custom agents",
link: "/guides/user/default-vs-custom-agents.md",
},
{ text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Moved guides omit prerequisites 📜 Skill insight ✧ Quality

The newly registered escalation-ladder.md guide immediately instructs readers to follow a
four-level procedure but has no clearly labeled prerequisites section. Readers are not told what
access, configuration, or knowledge they need before beginning Level 1.
Agent Prompt
## Issue description
The newly placed escalation-ladder guide contains a procedural escalation path without a clearly labeled prerequisites section.

## Issue Context
PR Compliance ID 1062078 requires every guide to state prerequisites before its procedure begins.

## Fix Focus Areas
- docs/guides/user/escalation-ladder.md[1-20]

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

Comment thread docs/.vitepress/config.ts
text: "Default, derived and custom agents",
link: "/guides/user/default-vs-custom-agents.md",
},
{ text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

2. escalation-ladder procedure is unnumbered 📜 Skill insight ✧ Quality

The guide tells readers to start at Level 1 and move through four levels, but presents the sequence
as prose, a code block, and separate headings rather than an ordered list. This makes the newly
introduced guide path noncompliant with the required procedure format.
Agent Prompt
## Issue description
The escalation procedure is expressed through narrative prose, a code block, and headings instead of numbered procedural steps.

## Issue Context
The guide explicitly directs readers to begin at Level 1 and move upward, so the four levels form an ordered procedure under PR Compliance ID 1062079.

## Fix Focus Areas
- docs/guides/user/escalation-ladder.md[8-40]

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

Comment thread docs/.vitepress/config.ts
Comment on lines +270 to +274
{
text: "Default, derived and custom agents",
link: "/guides/user/default-vs-custom-agents.md",
},
{ text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

3. New guides missing index entries 📜 Skill insight ⚙ Maintainability

The PR adds sidebar entries for default-vs-custom-agents.md and escalation-ladder.md under
docs/guides/user/ without updating docs/guides/README.md. The guide index still links to the
removed docs/agents/topics/default-vs-custom.md location and contains no escalation-ladder entry.
Agent Prompt
## Issue description
Two guides were introduced under `docs/guides/user/`, but the guide index was not updated for their new locations.

## Issue Context
PR Compliance ID 1062084 requires `docs/guides/README.md` to be updated whenever a guide is added. Replace the stale topics link and add an entry for the escalation ladder.

## Fix Focus Areas
- docs/guides/README.md[43-58]
- docs/.vitepress/config.ts[270-274]

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

Comment thread docs/.vitepress/config.ts
Comment on lines +270 to +274
{
text: "Default, derived and custom agents",
link: "/guides/user/default-vs-custom-agents.md",
},
{ text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" },

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

4. Moved guide links are broken 📜 Skill insight ≡ Correctness

The guides retain relative links written for their former docs/agents/topics/ location, so links
such as ../../guides/user/... now resolve under nonexistent docs/guides/guides/user/, while the
two ../ links in default-vs-custom-agents.md resolve to the Guides index instead of the Agents
reference. Consequently, multiple customization and agent-reference links lead users to missing
pages or the wrong documentation section.
Agent Prompt
## Issue description
Correct the relative links retained from the guides' former directory so that sibling user-guide links resolve within `docs/guides/user/` and agent-reference links resolve to `docs/agents/`, rather than to nonexistent paths or the Guides index.

## Issue Context
These guides moved from `docs/agents/topics/` to `docs/guides/user/`, but some links still use traversal calculated from the old location. From the new directory, `../../guides/user/...` resolves under nonexistent `docs/guides/guides/user/`, and `../` resolves to `docs/guides/` rather than the Agents reference at `docs/agents/`.

## Fix Focus Areas
- docs/guides/user/default-vs-custom-agents.md[45-53]
- docs/guides/user/default-vs-custom-agents.md[89-103]
- docs/guides/user/escalation-ladder.md[41-50]
- docs/guides/user/escalation-ladder.md[183-194]

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

Comment thread docs/agents/triage.md
- upstream-org/specific-repo
```

**Defaults:** At install time, fullsend populates this with your org (in org mode — **deprecated**, see [ADR 0044](../ADRs/0044-deprecate-per-org-installation-mode.md)) or your repo (in per-repo mode), plus `fullsend-ai/fullsend` as an upstream target.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

5. Per-org removal unmentioned 📘 Rule violation § Compliance

The replacement of docs/agents deletes documentation that explicitly discusses deprecated per-org
installation mode, but the PR description does not mention that impact or ADR 0044. The checklist
requires even removals of per-org-mode content to be called out explicitly.

Comment thread docs/agents
@@ -0,0 +1 @@
../agents/docs/ No newline at end of file

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

6. Moved pages break inbound links 🐞 Bug ≡ Correctness

Seventeen existing documentation links still target /agents/topics/default-vs-custom or
/agents/topics/escalation-ladder, but replacing docs/agents with the submodule symlink removes
those pages while their replacements are published under /guides/user/. These links now lead to
nonexistent pages.
Agent Prompt
## Issue description
Update every internal link that still targets the removed `agents/topics/default-vs-custom.md` or `agents/topics/escalation-ladder.md` routes so it points to the corresponding page under `guides/user/`.

## Issue Context
`docs/agents` is now backed by the agents submodule, while these two pages were moved into `docs/guides/user/`. Existing inbound links were not migrated.

## Fix Focus Areas
- docs/cli/agent.md[121-121]
- docs/glossary.md[48-75]
- docs/guides/README.md[57-57]
- docs/guides/user/adoption.md[94-94]
- docs/guides/user/bring-your-own-agent.md[381-382]
- docs/guides/user/building-custom-agents.md[12-14]
- docs/guides/user/customizing-agents.md[398-399]
- docs/guides/user/customizing-overview.md[129-130]
- docs/guides/user/customizing-with-agents-md.md[153-153]
- docs/guides/user/customizing-with-skills.md[197-197]

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

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Site preview

Preview: https://9a9fa37c-site.fullsend-ai.workers.dev

Commit: 229fa6fb67ca409ef02736a53c603dae1ad75dc3

Add fullsend-ai/agents as a submodule and link its docs/
folder into docs/agents, so the contents are fresh from
that repository. Rebuild the docs site when the agents
submodule changes, matching the experiments/ path filters.

There will be a drift as the submodule gets updated, but
we can deal with that later.

Signed-off-by: Hector Martinez <hemartin@redhat.com>
Assisted-By: Grok 4.6 (Pi runtime)
Signed-off-by: Hector Martinez <hemartin@redhat.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 3, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 10:41 AM UTC · Completed 11:02 AM UTC

Commit: 229fa6f · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $7.18

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review

Copy link
Copy Markdown

Risk Assessment: moderate (2/5)

Details

Moderate risk — large file count (41) and protected path changes (CI workflows) elevate Tier 1 signals, but this is fundamentally a documentation/submodule integration PR with no production code changes, clear acceptance criteria fully addressed, no security-sensitive files touched, and straightforward rollback.

@fullsend-ai-review

Copy link
Copy Markdown

Review

Findings

Medium

  • [stale-reference] skills/author-fullsend-augmentations/SKILL.md:253,314 — Two references to docs/agents/topics/default-vs-custom.md remain in this file (lines 253 and 314). The PR removes docs/agents/topics/ entirely — the docs/agents directory is now a symlink to ../agents/docs/, and the topics/ subdirectory does not exist in the agents submodule. The file was moved to docs/guides/user/default-vs-custom-agents.md. These paths will be broken after merge.
    Remediation: Update both occurrences to docs/guides/user/default-vs-custom-agents.md.

  • [inconsistent-lychee-exclusion] Makefile:180 — The Makefile's lychee exclusion uses --exclude-path ^agents/ (regex anchored to start-of-path), which correctly excludes files directly under agents/ but does NOT exclude files reached through the docs/agents symlink (which resolves to paths like docs/agents/code.md). The Makefile passes '**/*.md' as a literal glob to lychee, which follows symlinks during traversal. Files discovered via the symlink will have paths starting with docs/agents/, not agents/, so they bypass the ^agents/ exclusion. The pre-commit config separately adds --exclude-path docs/agents/ but not ^agents/.
    Remediation: Add --exclude-path docs/agents/ to the Makefile lychee invocation (in addition to the existing ^agents/). Optionally add --exclude-path ^agents/ to pre-commit for symmetry.

  • [naming-convention] docs/.vitepress/config.ts:270 — The two new sidebar entries use .md extensions in their link values (/guides/user/default-vs-custom-agents.md, /guides/user/escalation-ladder.md). These are the only two sidebar links in the entire file that include the .md extension — all other links (~30+) omit it. VitePress resolves both forms, so this is not a functional bug, but it violates the established codebase convention.
    Remediation: Remove the .md suffix from both new link values: /guides/user/default-vs-custom-agents and /guides/user/escalation-ladder.

  • [protected-path] .github/workflows/lint.yml, .github/workflows/site-build.yml, .pre-commit-config.yaml — This PR modifies 3 protected governance/infrastructure files. The changes add agents submodule initialization to the lint workflow, add path triggers for the agents submodule to site-build, and exclude symlinked agent docs from lychee link checking. The PR links to issue Include fullsend-ai/agents docs in the documentation site #5710 and the rationale is clear, but human approval is always required for protected-path changes.

Low

  • [sidebar-items-lost] docs/.vitepress/config.ts:255getMarkdownFiles('agents', 'agents') only discovers top-level .md files and immediate subdirectories with README.md. Currently, all agent docs in the submodule are top-level and correctly represented. If the agents submodule's docs/ later adds nested directories with content pages (not just README.md), those would be silently omitted from the sidebar.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread Makefile

lint-md-links:
lychee --offline --no-progress --include-fragments --exclude-path node_modules --exclude-path experiments --exclude-path docs/archived-roadmap.md '**/*.md'
lychee --offline --no-progress --include-fragments --exclude-path node_modules --exclude-path experiments --exclude-path ^agents/ --exclude-path docs/archived-roadmap.md '**/*.md'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] inconsistent-lychee-exclusion

The Makefile's lychee exclusion uses --exclude-path ^agents/ (regex anchored to start-of-path), which correctly excludes files under agents/ but does NOT exclude files reached through the docs/agents symlink. Files discovered via the symlink have paths starting with docs/agents/, bypassing the ^agents/ exclusion.

Suggested fix: Add --exclude-path docs/agents/ to the Makefile lychee invocation in addition to the existing ^agents/.

Comment thread docs/.vitepress/config.ts
collapsed: true,
items: [
{ text: "Overview", link: "/guides/user/customizing-overview" },
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] naming-convention

The two new sidebar entries use .md extensions in their link values (/guides/user/default-vs-custom-agents.md, /guides/user/escalation-ladder.md). All other sidebar links (~30+) in this file omit the .md extension. VitePress resolves both forms, but this violates the established codebase convention.

Suggested fix: Remove the .md suffix from both new link values: /guides/user/default-vs-custom-agents and /guides/user/escalation-ladder.

Comment thread docs/.vitepress/config.ts
{ text: "Default vs. Custom", link: "/agents/topics/default-vs-custom" },
{ text: "Escalation Ladder", link: "/agents/topics/escalation-ladder" },
],
items: getMarkdownFiles("agents", "agents"),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] sidebar-items-lost

getMarkdownFiles('agents', 'agents') only discovers top-level .md files and immediate subdirectories with README.md. Currently all agent docs are top-level and correctly represented. If the agents submodule later adds nested content directories, those would be silently omitted from the sidebar.

@waynesun09 waynesun09 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.

Additional review finding (posted programmatically, deduplicated against existing comments):

Comment thread docs/doc-site.md
| [fullsend-ai/experiments](https://github.com/fullsend-ai/experiments) | `experiments/` | `docs/experiments` -> `../experiments` |
| [fullsend-ai/agents](https://github.com/fullsend-ai/agents) | `agents/` | `docs/agents` -> `../agents/docs/` |

The `docs:dev` and `docs:build` scripts in the root `package.json` handle submodule initialization automatically. CI checkout in `.github/workflows/site-build.yml` uses `fetch-tags: true` and `fetch-depth: 0`; `git submodule update --init` runs in the build step.

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.

[MEDIUM] make bootstrap/make ensure-hooks never init the new agents submodule, so a fresh clone's first commit fails lint-broken-symlinks

docs/agents is now a symlink (git mode 120000) to ../agents/docs/, which only resolves once the agents submodule is checked out. Verified on the PR head (229fa6f): .pre-commit-config.yaml wires lint-broken-symlinks with always_run: true, and that script (hack/lint-broken-symlinks) fails the hook whenever any git-tracked symlink is not resolvable on disk ([[ ! -e "$symlink" ]]). Neither make bootstrap (Makefile:47) nor make ensure-hooks (Makefile:78, which pre-commit installs and is a prerequisite of make lint) runs git submodule update --init, so a contributor who clones the repo, runs make bootstrap, and then makes their first commit hits a confusing pre-commit failure until they manually discover and run git submodule update --init agents.

This is a real, narrower gap than a generic "submodule not initialized" framing: this Submodules table (added by this PR, right above) already documents the agents submodule and correctly states that the docs:dev/docs:build npm scripts auto-init submodules — CI's lint.yml also explicitly inits it. The gap is specifically in the make-based bootstrap/pre-commit path, which isn't mentioned here as needing the same submodule init.

Suggestion: either have make bootstrap / make ensure-hooks run git submodule update --init agents (or --init for all submodules), or add a one-line note in this Submodules section that make lint / committing via pre-commit hooks also requires initializing the submodule, since only the npm docs scripts do it automatically today.

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

Labels

risk/moderate PR risk: moderate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include fullsend-ai/agents docs in the documentation site

2 participants