feat(docs): pull agent documentation from fullsend-ai/agents - #6953
feat(docs): pull agent documentation from fullsend-ai/agents#6953rh-hemartin wants to merge 1 commit into
Conversation
|
🤖 Review · Commit: |
PR Summary by QodoSource agent docs from the fullsend-ai/agents submodule
AI Description
Diagram
High-Level Assessment
Files changed (7)
|
Code Review by Qodo
1. Moved guides omit prerequisites
|
| text: "Default, derived and custom agents", | ||
| link: "/guides/user/default-vs-custom-agents.md", | ||
| }, | ||
| { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" }, |
There was a problem hiding this comment.
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
| text: "Default, derived and custom agents", | ||
| link: "/guides/user/default-vs-custom-agents.md", | ||
| }, | ||
| { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" }, |
There was a problem hiding this comment.
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
| { | ||
| text: "Default, derived and custom agents", | ||
| link: "/guides/user/default-vs-custom-agents.md", | ||
| }, | ||
| { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" }, |
There was a problem hiding this comment.
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
| { | ||
| text: "Default, derived and custom agents", | ||
| link: "/guides/user/default-vs-custom-agents.md", | ||
| }, | ||
| { text: "Agent escalation ladder", link: "/guides/user/escalation-ladder.md" }, |
There was a problem hiding this comment.
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
| - 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. |
There was a problem hiding this comment.
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.
| @@ -0,0 +1 @@ | |||
| ../agents/docs/ No newline at end of file | |||
There was a problem hiding this comment.
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
Site previewPreview: https://f9852188-site.fullsend-ai.workers.dev Commit: |
f7c716f to
229fa6f
Compare
|
🤖 Finished Review · ✅ Success · Started 10:41 AM UTC · Completed 11:02 AM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $7.18 |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Risk Assessment: moderate (2/5) DetailsRe-review anchoring preserved the prior score of 2: Tier 1 signals are unchanged (large blast radius, 4 protected paths, CI workflow touched, no test files), Tier 2 shows typical multi-author doc/config churn with no reversions, and Tier 3 confirms all acceptance criteria are satisfied with no risk labels — the elevated metadata signal scores are structurally inflated by submodule and docs-only changes rather than representing genuine production risk. Previous runRisk Assessment: moderate (2/5) DetailsModerate risk — Tier 1 signals are unchanged from prior assessment (large blast radius, protected CI paths, no test files), but this remains fundamentally a documentation/submodule integration PR with no production code changes, no security-sensitive files, clear acceptance criteria fully satisfied, and straightforward rollback. Previous run (2)Risk Assessment: moderate (2/5) DetailsModerate 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. |
ReviewFindingsMedium
Low
Labels: PR restructures documentation delivery (new agents submodule, docs/agents symlink, sidebar auto-discovery) and modifies CI workflow files (lint.yml, site-build.yml); neither the docs nor CI component labels are currently applied. Next steps:
Previous runReviewFindingsMedium
Low
Next steps:
Previous run (2)ReviewFindingsHigh
Medium
Low
Next steps:
Previous run (3)ReviewFindingsMedium
Low
Next steps:
|
waynesun09
left a comment
There was a problem hiding this comment.
Additional review finding (posted programmatically, deduplicated against existing comments):
229fa6f to
9b83535
Compare
|
🤖 Finished Review · ✅ Success · Started 8:49 AM UTC · Completed 9:12 AM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $7.43 |
9b83535 to
a503979
Compare
|
🤖 Finished Review · ✅ Success · Started 9:39 AM UTC · Completed 9:58 AM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $6.21 |
This comment was marked as off-topic.
This comment was marked as off-topic.
a503979 to
e97c3e8
Compare
|
🤖 Review · Commit: |
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>
e97c3e8 to
2b3fed4
Compare
|
🤖 Finished Review · ✅ Success · Started 6:58 AM UTC · Completed 7:21 AM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $6.65 |
| # this submodule is checked out. experiments/ does not need this: that | ||
| # symlink points at the gitlink directory itself. | ||
| - name: Initialize agents submodule | ||
| run: git submodule update --init agents |
There was a problem hiding this comment.
[low] secret-exposure
The default CI job (test, runs on every pull_request, no path filter) now runs git submodule update --init agents immediately after actions/checkout, which defaults to persist-credentials: true. The .gitmodules URL and the agents gitlink SHA are both PR-controlled, so every PR now triggers a credentialed git fetch of a PR-chosen GitHub URL. The persisted credential extraheader is host-scoped to github.com and permissions: contents: read is unchanged, so this is hardening rather than a demonstrated token-exfiltration path -- the same persist-credentials + git submodule update --init pattern already exists, unmodified, in site-build.yml's build step. This PR extends the pattern to the unfiltered default CI job that runs on every PR.
Suggested fix: Set persist-credentials: false on the actions/checkout step in lint.yml (the job never pushes) and let git submodule update --init agents run unauthenticated for the public submodule.
waynesun09
left a comment
There was a problem hiding this comment.
Review-only pass (no approval, no change request). Findings below were verified against head 2b3fed4 with the agents submodule checked out at the pinned commit, and deduplicated against the existing comments on this PR.
Two findings have no line in this diff to anchor to, so they are here:
[MEDIUM] CODEOWNERS has no blank-owner entry for the new agents submodule, so its Renovate bumps cannot auto-merge — CODEOWNERS
CODEOWNERS (full file read at head) is: * @fullsend-ai/core, then a comment block stating "Submodule paths — no code-owner review required so Renovate digest bumps can auto-merge after CI passes", then blank-owner entries for .gitmodules, experiments, eval/.agent-eval-harness. There is no agents entry, and CODEOWNERS is not touched by this PR at all. renovate.json:19-23 automerges every git-submodules update, so agents gitlink bumps will be created and then blocked pending @fullsend-ai/core review — inconsistent with the two existing submodules and with the stated rationale in that very comment block.
Suggested fix: Add agents to the blank-owner list in CODEOWNERS, directly alongside experiments and eval/.agent-eval-harness.
[MEDIUM] Issue-filing guidance covers the experiments submodule split but was not extended to the new agents split — AGENTS.md:21, CONTRIBUTING.md:155-166, skills/filing-issues/SKILL.md:26-43
AGENTS.md:21, CONTRIBUTING.md:155-166 ("Where to file experiments-related issues", with the source-vs-wiring table) and skills/filing-issues/SKILL.md:26-43 all spell out the fullsend-ai/experiments split in detail — source in the submodule repo, submodule integration (.gitmodules, CODEOWNERS, Renovate, docs symlink, docs-site wiring) here. Grep at head confirms none of the three has any parallel rule for agents; the only agents mention in the diff is a path update in skills/author-fullsend-augmentations/SKILL.md. This matters immediately because the highest-severity finding on this PR (the 18 dead source links) has to be fixed in fullsend-ai/agents, not here, and nothing in the repo tells a contributor or an agent that.
Suggested fix: Add a parallel agents entry mirroring the experiments guidance in all three places: agent-definition and agent-doc content goes to fullsend-ai/agents; submodule integration (.gitmodules, CODEOWNERS, Renovate policy, the docs/agents symlink, sidebar wiring) stays in this tracker.
| { text: "Default vs. Custom", link: "/agents/topics/default-vs-custom" }, | ||
| { text: "Escalation Ladder", link: "/agents/topics/escalation-ladder" }, | ||
| ], | ||
| items: getMarkdownFiles("agents", "agents"), |
There was a problem hiding this comment.
[HIGH] Submodule agent pages ship 18 dead links, and the lychee exclusion added in this PR removes the only check that would catch them
Verified at head 2b3fed4 with the pinned submodule (81b0e9b) checked out. The 8 pages now served from docs/agents (-> ../agents/docs/) were written for the agents-repo layout and carry 18 repo-relative links to paths that do not exist on the docs site: ../harness/{code,fix,prioritize,retro,review,scribe,triage}.yaml (8), ../policies/base.yaml (4, in code.md:86 and network-policy.md:23,101,128), ../profiles/ (3, code.md:87 and network-policy.md:25,130), ../scripts/lib/pr-assignee.lib.sh (code.md:170).
This is a regression introduced by the swap, not pre-existing: the deleted in-tree docs/agents/code.md used an absolute URL for the same link ([`fullsend-ai/agents` — `harness/code.yaml`](https://github.com/fullsend-ai/agents/blob/main/harness/code.yaml)), and grep of the old page shows every cross-repo reference was absolute.
Nothing catches the new relative form: docs/.vitepress/config.ts:195 sets ignoreDeadLinks: true, config.ts has no markdown link transform, and this PR adds --exclude-path docs/agents/ to both .pre-commit-config.yaml:165 and Makefile:184 (on top of the existing ^agents/ in the Makefile), so lychee never reads those files. Note the exclusion was added in response to the review comment on Makefile:180, which asked for it on consistency grounds — the side effect of silencing 18 real dead links was not considered on that thread.
Suggested fix: Fix in fullsend-ai/agents first: restore absolute https://github.com/fullsend-ai/agents/blob/main/... URLs for the harness/, policies/, profiles/ and scripts/ references in docs/*.md, then re-pin here. If you want the fix in this repo instead, add a markdown-it link rule in config.ts that rewrites ../harness/, ../policies/, ../profiles/ and ../scripts/ from pages under /agents/ to the agents GitHub blob URL. Please do not merge with docs/agents/ excluded from lychee while the relative links are still there — the exclusion is what makes this silent.
| # this submodule is checked out. experiments/ does not need this: that | ||
| # symlink points at the gitlink directory itself. | ||
| - name: Initialize agents submodule | ||
| run: git submodule update --init agents |
There was a problem hiding this comment.
[MEDIUM] fullsend's Go toolchain now compiles, vets and tests review-eval fixture code from the agents submodule
Confirmed by running go list ./... on the PR head with the submodule initialised: it now returns github.com/fullsend-ai/fullsend/agents/eval/review/cases/002-risk-high-auth-change/repo/internal/auth. agents/ has no go.mod (find agents -name go.mod is empty), so the new "Initialize agents submodule" step at lint.yml:22-23 — which runs before actions/setup-go — folds that package into the fullsend module. It is then built by go test -race -coverprofile=coverage.out ./... (lint.yml:57), by golangci-lint run ./... (Makefile:131), and by the go vet ./... pre-commit hook (.pre-commit-config.yaml:106-111, pass_filenames: false).
It happens to pass today (go vet ./agents/... exits 0), but the file is a deliberately-flawed review fixture (a static valid-token auth handler) and is not even gofmt-clean (gofmt -l lists it). renovate.json:20-23 automerges all git-submodules updates, so a future agents commit that adds a fixture which does not compile, or imports outside stdlib, will break fullsend CI on an auto-merged bump with no human in the loop.
(Distinct from the existing persist-credentials comment on this line.)
Suggested fix: Keep Go's package walk out of the submodule: move the submodule-init step after the Go steps (only lychee and the symlink lint consume it), or scope the Go commands (go test $(go list ./... | grep -v '/agents/'), plus exclude-dirs: [agents] in .golangci.yml and a scoped go vet in the hook). Mounting the submodule at a Go-ignored path (_agents/) and repointing the symlink also works.
| | `ready-to-code` | Triggers the code agent. Applied by the [triage](triage.md) post-script for low-risk categories (bug, documentation, performance), or manually by a human for feature work after prioritization. | | ||
| | `ready-for-review` | Applied by the code agent's post-script after pushing a PR. In per-repo installs, triggers review when applied to a PR; also marks workflow state for humans and the retro agent. | | ||
|
|
||
| ## Configuration and extension |
There was a problem hiding this comment.
[MEDIUM] Two substantial user-facing configuration sections are dropped and exist in neither repo at the pinned commit
Heading diff of the deleted pages against agents/docs/* at pin 81b0e9b.
### Image and network policy synchronization(oldcode.md:53-104) is gone: the Warning callout about customizing image/policy/providers on only one of the code/fix harnesses, and the recommended dual-harness.fullsend/harness/{code,fix}.yamlexample that keeps them in sync.grep -rn -i 'Image and network policy synchronization'andgrep -rn 'harness/fix.yaml'overdocs/andskills/return nothing across the whole fullsend tree andagents/docs/.### Scheduled scoring(oldprioritize.md:68-374, ~300 lines) is gone entirely — the GitHub Projects v2 RICE-field prerequisites, the requiredFULLSEND_PRIORITIZE_CLIENT_ID/FULLSEND_PRIORITIZE_APP_PRIVATE_KEY/FULLSEND_FULLSEND_CLIENT_ID/FULLSEND_FULLSEND_APP_PRIVATE_KEYvariables table, and the complete exampleprioritize-scheduler.yml.grep -rn -i 'scheduled scoring'matches nothing anywhere.prioritize.mddrops 377 -> 118 lines.- The README loses its Configuration and Custom Agents sections; the submodule README replaces them with a single "see the fullsend docs" link.
This is fullsend-configuration guidance, not agent-definition content, so it has no natural home in the agents repo either.
Suggested fix: Move the two dropped sections into this repo before merge — the sync guidance into docs/guides/user/customizing-agents.md, and Scheduled scoring into a docs/guides/user/ page (both are fullsend config/ops content) — or land them in fullsend-ai/agents and re-pin. Either way, list the intentional drops in the PR description; today the PR body does not mention any content loss.
| { text: "Default vs. Custom", link: "/agents/topics/default-vs-custom" }, | ||
| { text: "Escalation Ladder", link: "/agents/topics/escalation-ladder" }, | ||
| ], | ||
| items: getMarkdownFiles("agents", "agents"), |
There was a problem hiding this comment.
[MEDIUM] Agents sidebar loses its curated workflow order and becomes alphabetical with two extra pages interleaved
The diff replaces an explicit eight-item list (Triage, Code, Review, Fix, Retro, Prioritize — SDLC workflow order — plus the two topic pages) with items: getMarkdownFiles("agents", "agents"). getMarkdownFiles (config.ts:22-27) iterates fs.readdirSync(fullDir).sort() with no ordering hook, so the rendered sidebar becomes Code, Fix, Custom network policy, Prioritize, Retro, Review, Scribe, Triage — the reading order that taught the pipeline is gone, and the two new pages the pin adds (network-policy.md, scribe.md) land in the middle of the agent list rather than being grouped.
Distinct from the existing sidebar-items-lost comments on this line, which are about nested subdirectories being silently omitted, not about ordering.
Suggested fix: Keep an explicit ordered list of the known agent slugs and append anything getMarkdownFiles discovers beyond it, or give getMarkdownFiles an optional sort key / read an order: frontmatter field. If alphabetical is acceptable, please say so in the PR body — it is a deliberate IA change the description does not currently mention.
| @@ -14,17 +14,15 @@ This ladder applies to **core agent roles that fullsend already ships** | |||
| (triage, code, review, fix, retro, prioritize). If you are building an agent | |||
There was a problem hiding this comment.
[MEDIUM] Published /agents/topics/* URLs are removed with no redirect or stub, and this repo has no mechanism to add one
(File-level finding; anchored here because the page is the one that moves.)
Both topic pages move to /docs/guides/user/default-vs-custom-agents and /docs/guides/user/escalation-ladder. In-repo links were correctly updated (grep -rn 'agents/topics' over the tree returns nothing), and the old URLs are live today (curl of the site preview returns HTTP 200 for /docs/agents/topics/escalation-ladder), so external bookmarks, search results and links from existing issues will start 404ing at deploy.
Correcting a mechanism proposed elsewhere: CANONICAL_REDIRECTS in docs/.vitepress/seo.ts:31-34 is not an HTTP redirect — it only overrides the canonical/og:url tag for a page that still exists — and grep -rni redirect cloudflare_site/ finds no redirect handling in the worker or wrangler.toml. So there is currently no mechanism at all. The repo's one precedent for a moved page (a stub page plus canonical, as with archived-roadmap.md) is also unavailable here, because docs/agents/ is now a symlink into the submodule, so a stub cannot be added under docs/agents/topics/ from this repo.
Suggested fix: Handle it in cloudflare_site/worker/src/index.ts: map /docs/agents/topics/default-vs-custom -> /docs/guides/user/default-vs-custom-agents and /docs/agents/topics/escalation-ladder -> /docs/guides/user/escalation-ladder with a 301, preserving the fragment. If a worker change is out of scope for this PR, file a follow-up and note in the PR body that the two URLs will 404.
|
|
||
| ensure-hooks: | ||
| @if [ -d "agents" ] && [ ! -e "agents/.git" ] && [ -f ".gitmodules" ]; then \ | ||
| git submodule update --init agents >/dev/null 2>&1 || true; \ |
There was a problem hiding this comment.
[MEDIUM] ensure-hooks hides submodule-init failures, and bare commits / new worktrees still fail lint-broken-symlinks
Residual of the already-addressed docs/doc-site.md:45 thread — bootstrap and ensure-hooks now do init the submodule, so that comment is resolved, but three gaps remain:
Makefile:84runsgit submodule update --init agents >/dev/null 2>&1 || true, discarding network/auth errors; the contributor then sees onlylint-broken-symlinksfailing on a danglingdocs/agentswith no hint of the real cause.ensure-hooksonly runs viamake. Reproduced on the PR head:git worktree addcreatesagents/as an empty directory, and running./hack/lint-broken-symlinksthere fails withERROR: docs/agents -> ../agents/docs/ ... 1 broken symlink(s) found. Since the hook isalways_run: true(.pre-commit-config.yaml:149-154), any baregit commitwith hooks installed, anypre-commit run, and every new worktree fails until the developer manually inits.- The
doc-site.mdsentence added by this PR ("when building locally or runningmake lint, you may need to rungit submodule update --initmanually") names exactly the two cases that already auto-init —package.json:15-16docs:dev/docs:buildboth prefixgit submodule update --init, andmake lintdepends onensure-hooks— while omitting the cases that actually break.
(Distinct from the always-true-guard comment on line 83.)
Suggested fix: Drop the >/dev/null 2>&1 || true on Makefile:84 (or keep stdout quiet but let stderr and the exit status through). Teach hack/lint-broken-symlinks to recognise a symlink target under a registered-but-uninitialised submodule (git submodule status prefix -) and fail with the actionable message run: git submodule update --init agents. Reword the doc-site.md note to name direct git commit / pre-commit run / new worktrees, and give the exact command.
| - "package-lock.json" | ||
| - "experiments" | ||
| - "experiments/**" | ||
| - "agents" |
There was a problem hiding this comment.
[MEDIUM] PR asserts tests were added when the diff has none, and the docs site has never been built successfully in CI with this configuration
- The PR body ticks "[x] Tests added/updated for new or modified logic", but
git diff --name-only origin/main...HEAD | grep -i testreturns nothing — the change togetMarkdownFiles's contract (it now walks a symlink into a submodule) has no test. - The
buildcheck at head 2b3fed4 is not a pass: job 102775611654 was cancelled at the 10-minute timeout during "Build documentation site", and the last sixsite-buildruns onmainare all cancelled the same way, so it is pre-existing — but the consequence is that no CI run has ever produced the site withdocs/agentsbacked by the submodule, and the PR body does not disclose that. The site preview linked in the comments is stale pre-PR output, verified:/docs/agents/network-policy404s,/docs/agents/topics/escalation-ladderstill 200s, andog:descriptionon/docs/agents/codestill carries the old in-tree frontmatter. So there is currently no artifact anywhere that shows the new configuration rendering. e2eis also red at head (TestAdminInstallUninstall) while recente2eruns onmainare green and the diff touches no admin code — likely a flake, but it is a required check.
Suggested fix: Untick the tests checkbox, or add a config.ts unit test that runs getMarkdownFiles over a symlinked fixture directory. Run npx vitepress build docs locally with the submodule initialised and paste the result (or a fresh working preview URL) into the PR — that is also how the 18 dead links flagged above become visible. Re-run e2e before merge. Note the PR is currently reported as mergeable: CONFLICTING and needs a rebase regardless.
Summary
Add
fullsend-ai/agentsas a git submodule and serve itsdocs/folder fromdocs/agentson the documentation site, so agent pages stay in sync with the agents repo instead of being copied by hand.Related Issue
Closes #5710
Changes
agentssubmodule at the repo root and replacedocs/agentswith a symlink toagents/docsgetMarkdownFilesdocs/guides/user/agents/changes, matching the existingexperiments/path filtersTesting
make lintpasses (stage changes first, then run)Checklist
!for breaking changes)