From @nolanchic. ServiceNow platform developer and step-by-step troubleshooter: Business Rules, Script Includes, GlideRecord/GlideAggregate, GlideAjax, ACLs, Flow Designer. Maintainer follow-up: the GlideAjax example now reads its parameter with this.getParameter() (the function argument never receives it), and an unverified system-property check is replaced with Transform Map guidance.
Closes#250
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Markdown has no nesting at equal fence length. Inside a ```markdown
template, a ```bash line is text, and the example's bare ``` closes the
template. Seven agents nest example blocks inside a template that way, so on
GitHub the rest of each template renders as headings and prose, and in three
of them the last block then runs open to the end of the file:
design-ux-architect code from line 414 to EOF
ats-validator-architect code from line 307 to EOF
master-plan-architect code from line 102 to EOF
technical-writer, incident-response-commander, developer-advocate,
workflow-architect templates end early, rest renders as markdown
The fix for each is the one CommonMark intends: fence the outer template
with four backticks so the three-backtick examples stay inside it. Nine outer
blocks change; no content does.
Nothing caught this because lib.sh's fence_closes_p accepted "```python" as
a closing fence. CommonMark allows only whitespace after a closing run, and
GitHub renders by that rule. With the old rule the linter and the OpenClaw
split read those seven files one way and GitHub another, so each agreed with
itself and all three disagreed with what users see. fence_closes_p now
requires a bare run, and the OpenClaw split invariant in
test-convert-outputs.sh uses the same rule.
lint-agents.sh gets two errors, each with the file line number:
- a fence line inside an open block that is long enough to close it but
carries an info string -- the only way that happens is an attempted
nest, and the message says how to fix it
- a block that is still open at the end of the file
The body loop now reads the file from the line after the frontmatter
instead of from $body, which drops every "---" line and so cannot give a
line number. It also keeps a last line with no trailing newline; two agents
end on a closing fence with none, and without that they read as unclosed.
The whole roster lints with 0 errors after the fix; on main the same check
reports 18 errors across the seven files.
scripts/test-lint-fences.sh covers both errors, the suggested fix, tilde
fences, and fence_closes_p directly, and runs in check-tools.yml.
The description contains "great DX: intuitive command design". A bare colon in
an unquoted YAML scalar starts a mapping, so the parser fails the whole block
with "mapping values are not allowed in this context" and the agent is dropped
at load time.
Consumers see this. Agency Agents logs it on every launch:
WARN agency_agents_lib::corpus: corpus: engineering-developer-tooling-engineer:
frontmatter YAML parse error: mapping values are not allowed in this context
at line 2 column 132
Quoting rather than rewording, to match how the two other descriptions carrying
a colon are already handled — the text is the author's and reads correctly.
#778 fixed this class in convert.sh; this file predates that and was never
regenerated.
Verified: scripts/lint-agents.sh passes on the file, all 258 agent files parse
under yaml.safe_load, and the warning no longer appears on app startup.
Vendor specialist for Huawei's GaussDB OLTP (enterprise relational DB) —
performance tuning, high availability, and migration. A niche enterprise/
China-market addition, distinct from the general database-optimizer.
Gate: lint 0/0, originality 4.7% (shared DB terminology with database-optimizer,
well under thresholds), 1 H1 + 5 sections + 7 code blocks. All guards green
(divisions/tools/runbooks/hermes); Hermes roster 262 -> 263.
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: opswm <opswm@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Production RAG pipeline specialist: chunking strategy, retrieval quality,
hybrid search, re-ranking, and eval-driven iteration. Retrieval-first
debugging mindset ("the retrieval is the crime scene, I have the evals").
Chosen over the concurrent #686 (RAG Engineer) as the keeper: same concept,
but #601 is more complete (2x content, 7 code blocks) and was submitted first.
Gate: lint 0/0, originality 0.0%, 1 H1 + 9 sections + 7 code blocks, valid
division. All guards green (divisions/tools/runbooks/hermes); Hermes roster
261 -> 262.
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: MaedehJJ <MaedehJJ@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Consolidates five gated PRs into one merge (each edited the README roster,
so landing individually would cascade conflicts):
- Security: AI-Generated Code Security Auditor, Secrets & Credential Hygiene
Engineer (#647, #648 — @Synvoya)
- Engineering: Database Reliability, Developer Tooling, IoT Fleet Engineer
(#705 — @Hotragn)
- Specialized: Codebase Archaeologist (#681 — @Axion-Web-dev)
All six cleared the full gate: lint 0/0, originality 0.0-0.1% (no dupes vs
roster or each other), proper structure, valid divisions. Roster rows added
to the Security/Engineering/Specialized tables (every link verified). Full
guard suite green — divisions, tools, runbooks, and the Hermes plugin guard —
and the Hermes roster picks up all six (254 -> 260 agents).
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: Synvoya <Synvoya@users.noreply.github.com>
Co-authored-by: Hotragn <Hotragn@users.noreply.github.com>
Co-authored-by: Axion-Web-dev <Axion-Web-dev@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Consolidates ten agent PRs from @Hotragn into one merge (they each edited
the README roster, so landing them individually would cascade conflicts):
- Engineering: Search Relevance, Identity & Access, Realtime Collaboration,
Desktop App, Mobile Release, Video Streaming, FinOps, WebAssembly,
API Platform
- Academic: Statistician
All ten cleared the gate: lint 0/0, originality 0.0–0.1% (no dupes vs the
roster or each other), proper structure, valid divisions. Roster rows added
to the Engineering and Academic tables; every link verified.
Claude-Session: https://claude.ai/code/session_01WKnDRWM4izsB8WAXKszhsq
Co-authored-by: Hotragn <Hotragn@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* feat: add Section 508 Accessibility Specialist agent to Engineering Division
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix: correct WCAG/508 legal baseline accuracy in Section 508 Specialist agent
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
XDC Network is an EVM-compatible L1 (XDPoS consensus) worth knowing
alongside Arbitrum/Optimism/Base/Polygon. It supports EIP-1559 on both
mainnet and the Apothem testnet, so it behaves as a standard EVM target
for gas estimation and tooling.
Fixes 3 agents for CONTRIBUTING.md template compliance (missing sections, incorrect headers). Reverts 2 tooling PRs (#371 promptfoo, #337 Vitest) that were merged without required Discussion — Discussions created at #434 and #435.
Thanks @vasanth15-hts — great rewrite of the Security Engineer. The adversarial thinking framework and expanded STRIDE analysis are a real improvement.
Introduce a new Filament-focused agent for high-impact admin UX improvements.
Includes structural form redesign rules (tabs, grids, sliders, collapsible sections),
anti-cosmetic guardrails, and noise-reduction principles for straightforward inputs.