draw_frame only cleared below the frame (\033[0J), so when a new screen's
lines were shorter than the previous screen's, the old tails (tool paths,
warnings) bled through on the right. Now erase-to-eol (\033[K) on every
line before the screen-clear.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
read_key used a fractional -t 0.01 timeout, which bash 3.2 (/bin/bash on
macOS) doesn't support — so arrow-key escape bytes ([A/[B) leaked through
and were parsed as letter commands (toggling instead of moving). Rewrite
to read the sequence byte-by-byte with integer timeouts and handle both
CSI ([) and SS3 (O) cursor modes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Migrates Gemini CLI to native subagents (~/.gemini/agents/) + quotes zk-steward description. Rebased from #472; e2e-verified with real gemini v0.43.0. Closes#473.
Co-Authored-By: Tomo Wang <tomo_wang@163.com>
The README Stats and acknowledgements were stale (144 / 147 agents, "12
divisions") and 19 merged agents were missing from the division tables.
- Update both count statements to 203 agents across 14 divisions
- Add 19 missing roster rows: Design (1), Engineering (4), Marketing (5),
Project Management (1), Sales (1), Specialized (7)
- De-hardcode the Gemini CLI README ("61 Agency agents" -> "all Agency
agents") so it can't go stale again
Verified: every on-disk agent is now linked in the README (0 missing).
Thanks to the contributors whose agents are now cataloged — @epowelljr,
@hedonnn, @Subhodip-Chatterjee, @Shiven0504, @DKFuH, @ahteshamsalamatansari,
@ahruslan17, @lz-googlefycy, @jmlozano1990, @kriptoburak — and everyone
building out The Agency.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
marketing/marketing-email-strategist.md (#509) landed with CRLF line
endings, which violate .gitattributes (*.md text eol=lf) and broke
./scripts/lint-agents.sh — head -1 saw "---\r" and reported a confusing
"missing frontmatter opening ---" on a file that visibly starts with ---.
- Normalize that file to LF (content-neutral; 0 non-whitespace changes).
- Add a CRLF guard to lint-agents.sh that fails fast with a clear,
actionable message instead of the misleading frontmatter error.
Thanks @hedonnn for the Email Marketing Strategist agent — great content;
just needed the line endings normalized.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds scripts/check-agent-originality.sh, which flags new agents that
substantially duplicate an existing one. It compares each candidate
against the whole roster (and other files in the same change set) using
entity-neutralized 8-word shingle overlap, so a find-replace "re-skin"
that only swaps a country/platform name can't slip past review.
- CI: new "Check agent originality" step in lint-agents.yml runs it on
changed agent files; a >=40% match fails the build.
- Docs: CONTRIBUTING.md gains a self-run "before submitting" step, a
checklist item, and a "things we'll always close" bullet for re-skins.
Calibration: across the existing 184-agent library the worst same-pair
similarity is ~1.5% (median 0%), so the WARN >=20% / FAIL >=40% defaults
leave a wide margin against false positives.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds finance/ to AGENT_DIRS in all 3 scripts, CI workflow trigger paths, CONTRIBUTING.md category list, and README.md division roster. Also fixes duplicate sales entry in lint-agents.sh.
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 @MeghanBao — Civil Engineer is a welcome addition to the Specialized Division. Closes#287!
(Apologies for the back and forth — we were in the middle of a big triage session.)
Thanks @vasanth15-hts — great rewrite of the Security Engineer. The adversarial thinking framework and expanded STRIDE analysis are a real improvement.
Refined from #51 by @SiamakSafari — restructured into standard template
with proper YAML frontmatter, deliverable templates, and platform-specific
citation patterns.
Co-Authored-By: SiamakSafari <SiamakSafari@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clarify what belongs in a PR vs. a Discussion — agent files are always
welcome, but tooling/architecture/bulk changes should start as a
Discussion first. Committed build output will always be closed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Running `convert.sh --tool aider` previously also wrote the Windsurf
output (and vice versa) because write_single_file_outputs dumped all
formats unconditionally. Each single-file format now only writes when
its tool is selected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added to Engineering: AI Data Remediation Engineer, Data Engineer, Feishu
Integration Developer. Added to Marketing: Book Co-Author, Cross-Border
E-Commerce Specialist, Douyin Strategist, Livestream Commerce Coach, Podcast
Strategist, Private Domain Operator, Short-Video Editing Coach, Weibo
Strategist. Added to Specialized: Automation Governance Architect, Corporate
Training Designer, Government Digital Presales Consultant, Healthcare Marketing
Compliance, Recruitment Specialist, Study Abroad Advisor, Supply Chain
Strategist.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Great engineering agents — Code Reviewer, DB Optimizer, Git Workflow, Software Architect, and SRE all fill genuine gaps. Nice vibes too. Clean split from #124.
Add yellow, violet, rose, lime, gray, and fuchsia to
resolve_opencode_color() — these were passing through as
plain strings and breaking OpenCode's hex-only color validation.
Fixes#108
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add sales/ to claude-code and copilot installer dir lists
- Add sales/ to lint-agents workflow trigger and changed-files filter
- Add LinkedIn Content Creator to marketing table in README
- Update agent count to 120
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auto-detect ~/.openclaw directory or openclaw CLI
- Copy SOUL.md, AGENTS.md, IDENTITY.md per agent to ~/.openclaw/agency-agents/
- Add to interactive selector and tool list
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OpenClaw support:
- Add section-splitting convert_openclaw() to convert.sh that routes
## headers by keyword into SOUL.md (persona) vs AGENTS.md (operations)
and generates IDENTITY.md with emoji + vibe from frontmatter
- Add integrations/openclaw/ to .gitignore
Frontmatter additions (all 112 agents):
- Add emoji and vibe fields to every agent for OpenClaw IDENTITY.md
generation and future dashboard/catalog use
- Add services field to carousel-growth-engine (Gemini API, Upload-Post)
- Add emoji/vibe to 7 new paid-media agents from PR #83
Agent quality:
- Rewrite accounts-payable-agent to be vendor-agnostic (remove AgenticBTC
dependency, use generic payments.* interface)
Documentation:
- CONTRIBUTING.md: Add Persona/Operations section grouping guidance,
emoji/vibe/services frontmatter fields, external services editorial policy
- README.md: Add OpenClaw to supported tools, update agent count to 112,
reduce third-party OpenClaw repo mention to one-line attribution
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add game-development to AGENT_DIRS in convert.sh, lint-agents.sh,
install.sh, and the CI workflow
- Remove maxdepth 1 from find commands so nested subdirectories
(e.g., game-development/unity/) are discovered
- Update CI git diff globs to **/*.md for recursive matching
- Remove strategy from lint AGENT_DIRS (playbooks, not agents)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prepares infrastructure for the upcoming Paid Media Division (PR #83).
Registers paid-media in convert.sh, lint-agents.sh, install.sh, and
the lint-agents GitHub Actions workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>