Expert references for Advanced UI and Multi-Agent, PyRIT in Security, and a raw-markdown fix - #17
Merged
Merged
Conversation
…d explain PyRIT Three things, and one of them is a fix. **References the author asked to keep.** Thirteen links for Advanced UI covering agentic and generative UI, the A2UI and AG-UI protocols, CopilotKit's three pieces, and the renderers; three more for Advanced Multi-Agent covering the swarm and supervisor packages and the workflow-versus-agent line. Every URL was fetched before being published: all sixteen return 200. Two are not what their names suggest, so the notes say what they are rather than what you would guess: AGenUI is a native A2UI renderer for iOS, Android and HarmonyOS rather than anything to do with AG-UI, and the two langgraph package pages are the JavaScript references, unlike every other LangChain link in this corpus. These do not appear on the site, and that is expected: a draft renders only its first paragraph and its schedule of parts. advanced_training.md's reference list has always been GitHub-only for the same reason. The point is that they are in the file when someone opens it to write the module. `advanced_multiagent_tr.md` had drifted, missing two topics and the whole reference block its English sibling carried. All ten expert modules now match exactly on links, bullets, blocks and diagrams. **PyRIT, explained.** It appeared only as "It is built on PyRIT" inside another tool's bullet, with no link. It now has its own entry among the red-teaming tools, placed before the agent built on it so that sentence reads as a back-reference. The details come from the verified dossier in the scratchpad: the four pieces a run is assembled from, the attacks that ship as runnable classes, `pyrit_scan` for CI, and the two traps worth an hour: `Orchestrator` became `Attack` in December 2025, and `Azure/PyRIT` is archived rather than redirected, so a stale link still serves a page that looks current. **A draft's dek is plain text, and six pages were shipping raw markdown.** The first paragraph of a draft becomes the sheet dek and the page's meta description, and neither is passed through the markdown renderer. The pass that replaced bare module numbers with title links put links in exactly that slot, so six expert stubs shipped literal brackets, on the page and in the metadata that feeds search results and link previews. Nothing caught it: the link gate reads `href` attributes and links.test.ts hunts hrefs ending in `.md`, and this was text. Fixed by naming the module by title in plain text there, which still satisfies the rule that pass existed to serve. A fresh build now contains no literal markdown link text anywhere in `out/`. **One test removed.** "leaves every stub under 200 words" went red at 231 when Advanced UI gained its links. A stub carrying a reference list is still a stub, CLAUDE.md names a word count as the first thing an assertion here may not state, and this same file had already dropped a sibling word-count test for the same reason. The comment records it. What it reached for is enforced in curriculum-file.ts, where a ready module needs a summary and minutes above zero. Gate: typecheck, 2052 vitest, 58 pages, every internal link in the export resolving, and zero EN/TR structural mismatches across the expert set.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three things, one of which is a fix for a defect currently live on
main.References to keep
Thirteen links for Advanced UI (agentic and generative UI, the A2UI and AG-UI protocols, CopilotKit's three pieces, the renderers) and three for Advanced Multi-Agent (
langgraph-swarm,langgraph-supervisor, and the workflow-versus-agent page).Every URL was fetched before publishing: all sixteen return 200. Two are not what their names suggest, so the notes say what they actually are:
langgraphpackage pages are the JavaScript/TypeScript references, unlike every other LangChain link in this corpusThese deliberately do not appear on the site. A draft renders only its first paragraph and its schedule of parts, which is why
advanced_training.md's reference list has always been GitHub-only too. They are there for whoever opens the file to write the module.advanced_multiagent_tr.mdhad drifted, missing two topics and the entire reference block its English sibling carried. All ten expert modules now match exactly on links, bullets, blocks and diagrams.PyRIT
It existed only as "It is built on PyRIT" inside another tool's bullet, with no link. It now has its own entry among the red-teaming tools, placed before the agent built on it so that sentence reads as a back-reference.
Details come from the verified dossier in the scratchpad, so it carries the things that save time: the four pieces a run is assembled from, the attacks that ship as runnable classes (which ties back to this module's own jailbreak taxonomy),
pyrit_scanfor CI, and two traps —OrchestratorbecameAttackin December 2025, andAzure/PyRITis archived rather than redirected, so a stale link still serves a page that looks current.The fix: a draft's dek is plain text
The first paragraph of a draft becomes the sheet dek and the page's
<meta name="description">, and neither is passed through the markdown renderer.The earlier pass that replaced bare module numbers with title links put links in exactly that slot, so six expert stubs have been shipping literal brackets — on the page, and in the metadata that feeds search results and link previews. Nothing caught it: the link gate inspects
hrefattributes andlinks.test.tshunts hrefs ending in.md; this was text.Fixed by naming the module by title in plain text there, which still satisfies the rule that pass existed to serve. A fresh build now contains no literal markdown link text anywhere in
out/.One test removed
leaves every stub under 200 wordswent red at 231 when Advanced UI gained its links. A stub carrying a reference list is still a stub;CLAUDE.mdnames a word count as the first thing an assertion here may not state; and this same file had already dropped a sibling word-count test for the identical reason. A comment records it. What it reached for is enforced properly incurriculum-file.ts, where areadymodule needs a summary and minutes above zero.Gate
npm run typechecknpm testnpm run buildout/