Commit Graph
14 Commits
Author SHA1 Message Date
Hotragn PettuganiandClaude Opus 5.5 d3f71c4bb8 fix(qwen): translate Claude Code tool names so Qwen grants Read, Write and Bash (#965)
From @Hotragn. 17 agents list Claude Code tool names (Read, Write, Bash...). Qwen Code resolves subagent tools by exact name or display name, so those three matched nothing and were never granted. Traced in Qwen Code 0.24.7: resolveToolNames preserves unknown names, and getTool() is a plain lookup with no alias translation. Now mapped to read_file, write_file and run_shell_command; other names pass through unchanged. The manifest moves exactly those 17 agents.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 14:35:39 -05:00
Michael SitarzewskiandClaude Opus 5.5 c078bd0db4 chore(eval): manifest lines for the 35 content fixes
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 22:12:25 -05:00
Michael SitarzewskiandClaude Opus 5.5 b94b72e780 chore(eval): regenerate the convert-outputs manifest for the installer batch
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 21:31:57 -05:00
nolanchicandClaude Opus 5.5 e31d699e06 feat(engineering): add ServiceNow Developer & Mentor agent (#703)
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>
2026-09-30 20:11:35 -05:00
Subhodip ChatterjeeandClaude Opus 5.5 7b3738099c feat: add DX Engineer (product) and Developer Community Builder (marketing) (#238)
From @Subhodip-Chatterjee's Developer Relations submission. DX Engineer joins product/ (onboarding friction, SDK ergonomics, error messages, first-run experience). Community Builder joins marketing/ as Developer Community Builder (community architecture, contributor programs, health metrics). Developer Advocate and Docs Engineer were not added, because specialized/Developer Advocate and engineering/Technical Writer already cover those roles.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-30 19:03:06 -05:00
Michael SitarzewskiandClaude Opus 5.5 d2d2101c45 chore(eval): regenerate the convert-outputs manifest for the integrated series
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-29 10:34:01 -05:00
Rudy Celekli a47212e9e5 fix(convert): preserve Markdown separators in agent bodies 2026-09-27 23:24:27 -04:00
Roberto SolanoandClaude Opus 5.5 479193dcce feat(integration): add DeepSeek Harness (dsh) skills support (#846)
Adds DeepSeek Harness as an integration target: 279 agency-* SKILL.md skills installed to ${DSH_HOME:-~/.dsh}/skills (or DSH_SKILLS_DIR for project scope).

Verified in DeepSeek Harness itself (@deepseek-ai/dsh 0.1.7-rc.2, installed via the documented npx path on Ubuntu 26.04 arm64): the repo installer placed 279 skills, and dsh's own skill-filesystem parser accepted all 279 with zero warnings (a planted invalid name and a missing description were both rejected with dsh's own messages).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 18:45:36 -05:00
Michael SitarzewskiandClaude Opus 5 87f8301cad chore(eval): regenerate the convert-outputs manifest for #871 and #872
Both PRs change generators, so every agent line moves: #871 rewrites the aider
CONVENTIONS.md as a roster index rather than 3.8M characters of concatenated
agents, and #872 teaches resolve_opencode_color() the `slate` and `navy` names
that were silently falling through to grey.

Neither PR carried the manifest, so main was left in drift.

Regenerated from a clean detached worktree at origin/main rather than the
managed clone: `--update` walks the working tree, and an untracked agent file
in that clone would have added a 280th line for a file no one else has.

Verified: 29 passed, 0 failed (279 roster agents x 14 tools).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-20 18:39:14 -05:00
ad9264e309 fix(convert): track code fences when splitting OpenClaw sections, and pin it with an invariant (#855)
convert_openclaw() split on `## ` without tracking fenced code blocks, tearing six fenced examples across SOUL.md/AGENTS.md in five agents and leaving dangling fences in each. Implementation from #854 (@guozi-lab): fence helpers in lib.sh used by convert.sh and lint-agents.sh, CommonMark indent aware. Regression test from #853 (@dajiaohuang): every source fenced block must land whole in exactly one output file — verified to fail on the unfixed converter.

Reported by @AmineOzil. Closes #849. Supersedes #853 and #854.

Co-Authored-By: fruit <200041037+guozi-lab@users.noreply.github.com>
Co-Authored-By: Wu Shuwen <108231307+dajiaohuang@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 11:57:20 -05:00
6d29a9b087 feat(agents): land six specialists — China Network, Platform, Focus Music, PDF Engine, ATS Validator, Universal Document Compiler (#845)
Consolidated landing of #768, #811, #808, #822, #842, #843 — agent files as submitted, README roster rows, regenerated Hermes README, manifest v2 (+6 agent lines). Verified together: lint, originality, guards, converted-frontmatter, outputs eval 26/26 (279 agents x 14 tools), installer 36/0, agent-selection, Hermes checks; PR CI green on all 7.

Closes #768. Closes #811. Closes #808. Closes #822. Closes #842. Closes #843.

Co-Authored-By: Sagarika Sultana <283121436+madebysaira@users.noreply.github.com>
Co-Authored-By: Sunil Kumar <24809771+sunilkumarvalmiki@users.noreply.github.com>
Co-Authored-By: augustoheiss <240949329+augustoheiss@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 19:10:22 -05:00
Michael SitarzewskiandClaude Fable 5.1 449e0c71b1 test(convert): manifest v2 — one line per agent, platform-neutral hashes, advisory drift on PRs (#844)
See the PR for the why/what/proof. Contributors no longer touch scripts/convert-outputs.sha256; drift is advisory on pull requests and strict on main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 18:59:03 -05:00
Michael SitarzewskiandClaude Fable 5.1 1454492577 chore(eval): update the convert-outputs manifest for the Hermes builder change (#803)
#803 changed scripts/build-hermes-plugin.py, so the generated Hermes plugin legitimately
changed and the drift manifest's hermes line went stale — main's "Validate converted outputs"
step failed on drift alone (25/26 passed; every invariant held). Regenerated with
scripts/test-convert-outputs.sh --update on a clean checkout of main; the suite is 26/26.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 12:40:16 -05:00
Michael SitarzewskiandClaude Fable 5.1 04eadbd3e5 test(convert): regression eval for generated outputs + app contracts; fix two get_field bugs it found (#829)
Adds scripts/test-convert-outputs.sh, the output half of the regression eval
(the install half landed in #828), and wires it plus the previously
un-wired test-agent-selection.sh (#779) into CI.

Why an eval at all: every converter bug so far passed lint and the existing
tests while the installed product was broken. #778 shipped a double-wrapped
description that was valid YAML, so a wrapper check passed; #817 dropped a
whole tool from --parallel and every remaining tool looked fine. Those are
invariant violations, not syntax errors.

Layer A (no history needed), for every agent x every converted tool:
  round-trip   parsed(generated).description == source description
  strict-parse every generated frontmatter / TOML / YAML parses with a real
               parser (kimi/vibe carry only an identifier: id == slug and the
               prose file exists; aider/windsurf: "## Name" + description line)
  count        every tool emits exactly one output per roster agent
  source       every SOURCE frontmatter strict-parses and carries no leaked
               quote — the desktop app reads sources with js-yaml (#473)
Layer B: scripts/convert-outputs.sha256, one aggregate hash per tool plus
divisions.json / tools.json / runbooks.json. A flipped line means outputs or a
contract changed; --update regenerates deliberately so review sees the blast
radius. Date-stable (no generated file embeds a date).

The expected side is derived by an INDEPENDENT strict parse of each source,
never by lib.sh's get_field: the generator uses get_field, so an expected
value derived the same way would move with a get_field bug and hide it —
which is exactly how #778 stayed invisible. That independence found two
shipping defects on the first green run:

- get_field returned only the first line of a multi-line plain scalar.
  Three healthcare agents write their description as an indented
  continuation; every generated output for them shipped it truncated
  mid-sentence while the app showed the whole thing. get_field now folds
  continuation lines the way YAML does (newline -> single space).
- get_field stripped only "field: " (one space). The same three files use
  column-aligned frontmatter (name:        X), so their generated names
  carried leading whitespace in every tool's output. Plain-scalar padding
  is now trimmed.

After both fixes get_field agrees with PyYAML on name and description for
all 273 sources. Acceptance: re-introducing #778's double-wrap, a dropped
tool, a divisions.json change, and an unquoted source each fail the eval
(the double-wrap via Layer A round-trip, not only the manifest).

Refs #778 #817 #473 #810 #826 #828 #779

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-03 07:58:13 -05:00