Portable AI agent orchestration with mechanical protocol enforcement. 186 agents, zero runtime dependencies.
What's inside
If you are an AI agent asked to install or integrate this pack: read
integration-prompt.mdand execute its steps. Do not applyAGENTS.template.mdas a live rule inside the pack folder โ it is the template that becomes the user project'sAGENTS.mdduring integration.
A drop-in multi-agent framework for Cursor, Claude Code, Copilot, Windsurf, Aider, and other AI coding assistants.
Built and maintained by GammaLab ยท @GammaLabTechnologies
Most AI coding frameworks trust the language model to follow the rules. Harmonist refuses to let it skip them. Every code-changing turn is gated by hooks that check whether the required reviewers ran, whether memory was updated, and whether the supply chain of every shipped file is intact. If the checks fail, the turn doesn't complete โ no matter how confidently the model claims it's done.
This is the first open-source agent framework where protocol enforcement is a mechanical gate, not a polite request in a prompt.
AI coding assistants have a structural problem that prompt engineering alone cannot fix.
The problem: every serious engineering workflow has non-negotiable rules โ "no floating-point for money", "run QA before merging", "every external call retries with idempotency keys", "security review before touching auth code". An LLM can be told to follow them, but there is no mechanism forcing it to. It can agree, move on, and silently skip the step. On a good day you notice. On a bad day the bug ships.
The current landscape is split between two imperfect answers:
Harmonist takes a different stance. Protocol enforcement is
implemented as IDE-level hooks โ concrete shell and Python scripts that
observe every subagent dispatch, every file edit, every session stop.
When the rules the project declared aren't met, the stop hook
returns a followup_message to the AI and refuses to allow the turn
to complete. The model can't argue with that; it's a state machine on
disk.
No runtime. No database. No vendor lock-in. Just markdown, stdlib Python, and bash โ sitting next to your code, doing one job correctly.
Seven concrete, checkable properties โ each one addresses a gap that other open-source agent frameworks leave open.
The stop hook in .cursor/hooks/ parses subagent dispatch markers
from the session, checks whether qa-verifier ran, whether any
required reviewer was missing, whether session-handoff.md was
updated, and returns a structured followup_message if the turn
is incomplete. loop_limit: 3 caps retries. On exhaustion, an
incident is recorded and surfaced in the next session. The AI
literally cannot ship a code change that skipped review.
All runtime-shipped content โ agents/, hooks/, memory/,
playbooks/, root docs โ is hashed in MANIFEST.sha256 (CI configs
and repo metadata are pack-repo-only and excluded). upgrade.py
sha-verifies each source before copying into a project. A tampered
security-reviewer.md (say, one that returns approve for
everything) is REFUSED โ it never enters the project. install_extras.py
inherits the same guard for on-demand specialist installs. This is
the first OSS agent catalogue with paranoid-level supply-chain
posture.
Every memory entry has a correlation_id of the form
<session_id>-<task_seq> generated by the hooks at session start
(<unix-seconds><pid4> โ collision-safe across parallel sessions).
The LLM reads the active ID via CLI; it never writes the ID itself.
This means the linkage between a state entry, a decision, and a
pattern from the same task is cryptographically ordered from
the hook's perspective โ not trusted to the model.
memory.py append is the only supported write path. It validates
every entry against a YAML schema (memory/SCHEMA.md), rejects
duplicates, and scans the body for ~30 classes of secrets: AWS
access keys, GitHub PATs, Stripe tokens, Slack webhooks, GCP service
accounts, Azure connection strings, Telegram bot tokens, Discord
tokens, Heroku/Postmark UUIDs (context-scoped), generic high-entropy
tokens with secret: prefixes, and DB connection strings with
embedded credentials. Placeholder fences (${VAR}, <NAME>) suppress
the scan so your templates still write cleanly.
Harmonist's catalogue is not a handful of roles. It's 193 curated
specialists across 16 categories: blockchain-security-auditor for
Solidity audits, zk-steward for zero-knowledge circuits, visionos-
spatial-engineer for Apple Vision Pro, wechat-mini-program-developer
and xiaohongshu-specialist for the China market, laravel-livewire-
specialist for PHP, roblox-systems-scripter for Roblox Luau, 30+
marketing agents from SEO to Douyin, finance / sales / product /
support / academic coverage. The orchestrator picks by
domains ร roles ร tags, not by hard-coded slug lists.
There is no installer binary. Integration happens by pasting
integration-prompt.md into a Cursor Agent-mode session. The AI
reads the prompt, analyzes the project, asks the user which roles
will be active (engineering / design / product / marketing / sales /
support / finance / testing / academic), selects the right
specialists from agents/index.json, and wires everything up โ
including writing a project-specific AGENTS.md with domain-tailored
invariants. The AI integrates itself.
No npm, no Docker, no LangChain, no vector database. Pure Python
stdlib (with optional POSIX .sh conveniences). Integration,
upgrade, conversion, install, and the enforcement runtime all run
natively on Windows, macOS, and Linux โ no WSL or Git Bash
required. The enforcement runtime has two implementations โ POSIX
.sh scripts for macOS / Linux / WSL, and a pure-Python
hook_runner.py that is the active path on every OS (and the only
one on native Windows). upgrade.py renders .cursor/hooks.json
with a Python launcher that actually exists on the host (py -3 /
python on Windows, python3 on POSIX). .gitattributes pins
eol=lf so a Windows checkout can't break MANIFEST.sha256. Both
hook paths are exercised against identical scenarios, and a
native-Windows CI job runs the full install path end-to-end.
.sh
conveniences and the shell test harness (macOS default works). All
integration, upgrade, conversion, and install tooling is pure Python,
and on native Windows the pure-Python hook_runner.py is the active
hook path; no WSL or Git Bash required.The pack folder may have any name โ docs refer to it as
<PACK_DIR>. Examples below assume the folder is namedharmonist(whatgit cloneproduces). The protocol template ships asAGENTS.template.md; the file generated in YOUR project during integration is namedAGENTS.md.
# 1. Clone into the root of your project (keep it as a SUBFOLDER โ
# do not unpack the pack's files into your project root)
cd your-project/
git clone https://github.com/GammaLabTechnologies/harmonist.git
# 2. Open the project in Cursor, switch to Agent mode
# 3. Paste the contents of harmonist/integration-prompt.md
# 4. Follow the AI's walkthrough โ it will ask about your
# project's domain and roles, then wire everything up.
# 5. Start a NEW chat when integration is done.
That's it. The AI reads harmonist/agents/index.json, picks the
right specialists for your stack, writes a domain-specific
AGENTS.md (from AGENTS.template.md), bootstraps .cursor/memory/,
installs the enforcement hooks, and records the integration state in
.cursor/pack-version.json.
cd your-project/
git clone https://github.com/GammaLabTechnologies/harmonist.git
python3 harmonist/agents/scripts/integrate.py --pack harmonist --project .
(If your pack folder has a different name, pass it via --pack <PACK_DIR>.)
On native Windows (PowerShell / cmd, no WSL or Git Bash), use the Python launcher โ every script is pure stdlib and cross-platform:
cd your-project\
git clone https://github.com/GammaLabTechnologies/harmonist.git
py -3 harmonist\agents\scripts\integrate.py --pack harmonist --project .
See GUIDE_EN.md. Note: hand-copying files produces an
unenforced setup (no hooks, rules, or .gitignore hardening), so the
guide routes the "manual" path through integrate.py +
verify_integration.py and lists what they automate.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AGENTS.md โ
โ Orchestrator โ
โ โ
โ Protocol ยท Hook Phases โ
โ Invariants ยท Memory โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ reads
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ agents/index.json โ โ generated
โ โ
โ by category ยท by tag โ โ routing table
โ 193 entries โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
โ routes to
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ orchestrationโ โ review โ โ persona โ
โ (scout, โ โ (strict, โ โ (engineering,โ
โ repo-map) โ โ readonly) โ โ design, โฆ) โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Review gates โ โ .cursor/ โ
โ โ โ memory/ โ
โ qa ยท sec โ โ โ
โ sre ยท perf โ โ session โ
โ regression โ โ decisions โ
โโโโโโโโโโโโโโโโ โ patterns โ
โโโโโโโโโโโโโโโโ
agents/<category>/<slug>.md with the same Schema v2
frontmatter. One schema, one catalogue.agents/index.json, filters by the project's
declared domains and roles, and picks the right specialist.protocol: strict agents
(orchestration + review) are mandatory gates that run on triggers.
protocol: persona agents are free-form specialists with domain
depth.sessionStart, afterFileEdit,
subagentStart, subagentStop, beforeShellExecution, and stop
hooks track the full lifecycle. The stop hook is the gate; the
beforeShellExecution hook is a human-in-the-loop gate on destructive
commands..cursor/memory/, linked by correlation IDs.
The next session reads the last three state snapshots and three
decisions before planning.Every count below is mirrored from agents/index.json and verified by
check_pack_health.py โ the table and the index cannot drift.
| Category | Count | Protocol | Focus |
|---|---|---|---|
orchestration | 2 | strict | Scout before implementation, route to right agent |
review | 6 | strict | Readonly reviewers โ security, quality, QA, SRE, regression, a11y |
engineering | 46 | persona | Backend, frontend, DevOps, data, AI, embedded, Solidity, LLM eval |
design | 8 | persona | UI/UX, brand, accessibility, visual storytelling |
testing | 8 | persona | QA, performance, API testing, evidence collection |
product | 5 | persona | Product management, sprints, feedback, trends |
project-management | 7 | persona | Planning, studio production, coordination |
marketing | 30 | persona | Growth, SEO, content, social, Douyin/WeChat/Xiaohongshu |
paid-media | 7 | persona | PPC, tracking, campaign audits |
sales | 8 | persona | Outbound, deals, discovery, proposals |
finance | 6 | persona | FPA, bookkeeping, tax, investments |
support | 5 | persona | Customer support, compliance, analytics |
academic | 5 | persona | Research, psychology, history, anthropology |
game-development | 20 | persona | Unity, Unreal, Godot, Roblox, Blender |
spatial-computing | 6 | persona | visionOS, WebXR, Metal, XR interaction |
specialized | 24 | persona | Blockchain audit, MCP builder, Salesforce, ZK, authorized security testing, privacy engineering, niche |
Each agent carries structured frontmatter: description, tags,
domains, distinguishes_from (near-peers), disambiguation
(one-line "when to pick this over X"), version, and updated_at.
The orchestrator reads all of this for tie-breaking when multiple
candidates match a task's tags.
The enforcement layer is what separates Harmonist from a "nice prompt
pack". It lives in hooks/ and gets installed into .cursor/hooks/
at integration time.
| Phase | What happens |
|---|---|
sessionStart | Bootstrap correlation_id, inject last 3 state / decision memory entries, warn about prior incidents |
afterFileEdit | Record every write to session state for the stop gate |
subagentStart | Parse AGENT: <slug> marker, credit the reviewer, enforce readonly capability scoping, and cap concurrent subagents |
subagentStop | Record verdict, update telemetry |
beforeShellExecution | HITL gate. Match the command against the dangerous-command patterns; ask for human confirmation (or deny) before a destructive command runs |
stop | The gate. Verify reviewers ran, memory updated, protocol satisfied. Return followup_message if not. |
If the session touched any file outside ignored patterns:
category: review agent was invoked via Task.qa-verifier was invoked..cursor/memory/session-handoff.md was updated during the session.If any check fails, the hook returns followup_message telling the AI
exactly what's missing. loop_limit: 3 caps retries. On exhaustion,
the incident is persisted to .cursor/hooks/.state/incidents.json
and surfaced in the next session as an unmissable banner.
For genuinely trivial turns (typo fix in a comment, markdown
rewording), the AI can emit PROTOCOL-SKIP: <reason> to bypass
the gate. The hook logs it. If the skip rate crosses a threshold
(default > 25% of all completions, min 5 skips), the next session
starts with a warning about abuse. Easy to opt out of cleanly;
hard to abuse quietly.
Memory is a contract, not free-form markdown. Every entry is a YAML
block delimited by <!-- memory-entry:start --> /
<!-- memory-entry:end --> with required fields: id,
correlation_id, at, kind, status, author, summary.
Three files with explicit roles:
| File | kind | Purpose |
|---|---|---|
session-handoff.md | state | Project state snapshot. Latest = authoritative. |
decisions.md | decision | Append-only architectural decisions. |
patterns.md | pattern | Lessons learned โ what worked, what didn't. |
python3 .cursor/memory/memory.py append \
--file session-handoff --kind state --status done \
--summary "Integrated Stripe webhook handler" \
--tags payments,backend \
--body-file /tmp/handoff-body.md
The CLI:
id and at deterministically.correlation_id from the hooks (not from the LLM).memory/SCHEMA.md before writing.--allow-duplicate.python3 .cursor/memory/memory.py search --tag payments
python3 .cursor/memory/memory.py latest --file session-handoff --n 5
python3 .cursor/memory/memory.py rotate --keep-last 50
The rotate verb archives older entries to a sibling .archive.md
file while keeping the last N live. Both archive and live pass the
validator.
Most of an agent's budget on an unfamiliar codebase is spent re-discovering
it โ grep, glob, Read, repeat. repomap.py builds a local, zero-dependency
code map (pure Python stdlib: ast + regex + sqlite3 โ no tree-sitter, no
Node, no native build) so repo-scout and the orchestrator query structure
instead of scanning files:
python3 .cursor/repomap/repomap.py build # index symbols + import graph
python3 .cursor/repomap/repomap.py explore "<question / symbol names>" # relevant symbols, grouped by file
python3 .cursor/repomap/repomap.py search <SymbolName> # exact location + signature
python3 .cursor/repomap/repomap.py dependents <file> # upstream โ who imports this
python3 .cursor/repomap/repomap.py impact <files...> # transitive blast radius of a change
python3 .cursor/repomap/repomap.py affected <files...> # which test files a change can break
python3 .cursor/repomap/repomap.py refresh # incremental (only changed files)
Python files are parsed precisely via the standard ast; other languages use
lightweight name-based extraction. The index lives at .cursor/repomap/ (built
during integration, gitignored, refreshed incrementally by file hash).
Where it pays off:
repo-scout answers bounded_context,
integration_points, and key_tests from the map in a couple of calls
instead of a grep/Read discovery loop.stop hook can require that the tests a
change actually affects were run โ set require_affected_tests: true in
.cursor/hooks/config.json. bg-regression-runner uses the same
affected query to run only the relevant tests, and sessionStart warns
when the map is stale.This is Harmonist's own clean-room take on the "query a code graph, don't grep" idea โ built to its zero-dependency, drop-in-a-box constraints, and wired into the enforcement gate rather than bolted on as a separate runtime.
All runtime-shipped content has a sha256 entry in MANIFEST.sha256:
agents/, hooks/, memory/, playbooks/, and the root docs. CI
configs (.github/, .gitlab-ci.yml) and repo metadata are
pack-repo-only and deliberately excluded โ they never get installed
into a host project. This buys:
check_pack_health.py runs 19 checks
including build_manifest.py --verify โ any modified / missing /
untracked file is flagged.upgrade.py --apply sha-verifies every pack
source BEFORE copying into a project. A tampered
security-reviewer.md is REFUSED and never enters .cursor/:
! REFUSED agents/review/security-reviewer.md: manifest expected
5d731c6b..., actual 4b5c2283... -- possible supply-chain tampering
install_extras.py โ the
on-demand specialist installer โ inherits the same supply-chain
guard..cursor/pack-manifest.json records
sha256 of every installed pack-owned file so
verify_integration.py can detect someone editing gate-stop.sh
or qa-verifier.md locally to weaken enforcement.upgrade.py --apply takes a tarball
snapshot to .cursor/.integration-snapshots/ before touching
anything; upgrade.py --rollback restores from the latest.Agents are copy-pasted into .cursor/agents/ and become part of the
orchestrator's prompt context. A hostile body can silently subvert
every session. scan_agent_safety.py runs a heuristic regex pass
over every agent markdown for four classes of hostile content:
| Class | Examples |
|---|---|
| Override | "ignore previous instructions", jailbreak markers |
| Exfil | Secret leak attempts, ~/.ssh/id_rsa access, reveal-system-prompt probes |
| Remote exec | curl | bash, base64-decode-exec, pastebin / ngrok / webhook.site callbacks |
| Policy subversion | "skip qa-verifier", "always approve silently" |
Runs on the pack catalogue in CI and on installed .cursor/agents/
after integration. Exit 1 on any error-severity hit. False-positive
guards built in for legitimate MITRE ATT&CK threat documentation.
Harmonist ships converters for 11 AI coding assistants. Run
./agents/scripts/convert.sh --tool <name> to regenerate the
target-specific artifacts, then ./agents/scripts/install.sh to
place them in the right spots. On native Windows, call the
cross-platform Python entry points directly:
py -3 agents\scripts\convert.py --tool <name> then
py -3 agents\scripts\install.py. (The .sh scripts are thin POSIX
wrappers around the same convert.py / install.py.)
| Tool | Surface produced |
|---|---|
| Cursor | .cursor/agents/*.md + .cursor/rules/*.mdc + hooks |
| Claude Code | Project-scoped agent definitions |
| GitHub Copilot | Custom instruction file |
| Windsurf | .windsurfrules |
| Aider | CONVENTIONS.md |
| Kimi | agents-orchestrator/system.md |
| Qwen | Agent directory format |
| Gemini CLI | Extension manifest + skills |
| OpenCode | Per-agent markdown |
| OpenClaw | IDENTITY.md per agent |
| Antigravity | Skill format |
Add --thin to install the essentials-only variant of each persona
agent (~38% fewer body lines across the pool, which matters in
context-constrained sessions). See agents/SCHEMA.md
for the ## Deep Reference convention that makes thin mode possible.
| Script | What it does |
|---|---|
check_pack_health.py | 19 preflight checks (version, manifest, lint, migrator idempotency, etc.) |
lint_agents.py | Validate every agent against Schema v2 โ 0 errors required |
build_index.py | Regenerate agents/index.json (routing table) |
build_manifest.py | Regenerate MANIFEST.sha256 (supply-chain anchor) |
integrate.py | Full integration into a target project |
upgrade.py | Roll an integrated project forward to a newer pack version, with snapshots |
install_extras.py | Add specialists to .cursor/agents/ by slug, role bundle, or tag โ sha-verified |
verify_integration.py | Objective post-integration audit โ what's missing, what's customised |
onboard.py | Guided tour of an already-integrated project for a teammate joining it |
scan_agent_safety.py | Prompt-injection / exfil scanner for catalogue + installed agents |
scan_memory_leaks.py | Audit git history for accidentally-committed memory files |
scan_rules_conflicts.py | Detect phantom slugs, duplicate-purpose rules, protocol contradictions |
insert_deep_ref_marker.py | Add ## Deep Reference cut point to long persona agents |
extract_essentials.py | Produce the thin variant of a persona agent |
report_usage.py | Render local agent-usage telemetry; recommend dead-balance removal |
repomap.py | Zero-dep local code map โ symbols + import graph; explore / search / impact / affected so the scout queries instead of grepping |
Full script index: agents/scripts/.
| File | Purpose |
|---|---|
AGENTS.template.md | Orchestrator TEMPLATE โ protocol, hook phases, memory, resilience. Becomes the project-specific AGENTS.md (paths substituted, domain customized) in every integrated project. Not an active rule inside the pack folder. |
GUIDE_EN.md | Condensed walkthrough for first-time users. |
integration-prompt.md | The one-shot prompt to paste into Cursor Agent mode for fully automated integration. |
agents/SCHEMA.md | Frontmatter contract (Schema v2) every agent file must satisfy. |
agents/STYLE.md | How agent bodies should read โ canonical shapes, anti-patterns, retrofit checklist. |
agents/TAGS.md | Curated tag vocabulary (253 tags organized by layer). |
memory/SCHEMA.md | Memory entry schema (v1), correlation-ID format, validation rules. |
CONTRIBUTING.md | How to contribute, PR checklist, release process. |
SECURITY.md | Vulnerability reporting policy, scope, response timelines. |
CODE_OF_CONDUCT.md | Community standards. |
CHANGELOG.md | Release history in Keep-a-Changelog format. |
playbooks/ | Optional NEXUS 7-phase lifecycle with phase-specific runbooks for startups, enterprises, incident response, and marketing campaigns. |
The enforcement layer, memory CLI, and every script ship with
exhaustive test coverage. 550+ test assertions across hooks, memory,
and shell-based integration suites โ all green in CI on every push.
| Suite | Assertions | Covers |
|---|---|---|
| Hook tests | 54 | All 6 phases (incl. the beforeShellExecution HITL gate), state locking, capability scoping, loop-limit / fail-closed, incident surfacing, concurrency cap, cross-platform runner parity |
| Memory tests | 33 | Append, validate, search, rotate, dedupe, migrations, secret-pattern scanner (incl. first-match + extra-field bypass) |
| Integration + upgrade + install_extras | 90+ | End-to-end integration, snapshots, rollback, on-demand specialist install, post-install drift detection |
| Supply-chain integrity | 23 | MANIFEST verification, tampered-source refusal, pack-manifest tracking |
| Enforcement extras | 40+ | telemetry-webhook (scheme allowlist + retry), repo-map code index, git pre-commit guard, hardening-checklist validator |
| 18 other script suites | 300+ | lint, extract, freshness, rules-conflicts, memory-privacy, telemetry, project-context, regression detection, py-guard sync, smoke test, onboarding, etc. |
Run the full regression locally:
python3 agents/scripts/check_pack_health.py # 19 preflight checks
bash hooks/tests/run-hook-tests.sh # 54 scenarios
bash memory/tests/run-memory-tests.sh # 33 scenarios
for t in agents/scripts/test_*.sh; do bash "$t"; done # all script suites
No. Those are frameworks you build an agentic application on top of โ they provide abstractions for chaining LLM calls, tool use, and orchestration logic.
Harmonist is a pack you drop into an existing project to make your AI assistant follow a protocol. It doesn't replace your app's runtime; it installs next to your code and intercepts how the coding assistant (Cursor, Claude Code, Copilot, etc.) interacts with your project.
The two can coexist. Harmonist governs the coding workflow; a LangChain / AutoGen / CrewAI app is something the workflow might produce.
Because prompt guidance is advisory and AI models treat it that way. "Always run QA before marking done" in a prompt is aspirational. A stop hook that refuses to let the turn finish until QA ran is a contract. We chose contracts.
Yes. Cursor is the primary integration because of its subagent and hooks support, but the pack ships adapters for 10 other tools (see Supported IDE integrations). The enforcement layer is strongest with Cursor; in other tools it falls back to convention-plus-validation.
Yes, and you should. The project-level AGENTS.md is the canonical
source for your domain's invariants, stack, modules, and resilience
policies. The orchestrator gives it precedence over any persona
agent body. Persona agents adapt to your rules; your rules don't
adapt to personas.
Pack-owned sections of AGENTS.md are delimited by
<!-- pack-owned --> markers and upgrade-replaced by upgrade.py.
Everything outside those markers is yours โ untouched by upgrades.
Local telemetry is enabled by default. It records per-agent
invocation counts, session counts, and gate-allow / PROTOCOL-SKIP
counters to .cursor/telemetry/agent-usage.json. Nothing is
uploaded anywhere โ it's a local file, gitignored, and readable in
plain JSON.
Disable completely by setting telemetry_enabled: false in
.cursor/hooks/config.json.
Most projects activate 10โ20 specialists for their actual working
roles. The other ~170 are available but invisible โ filtered out by
the domains ร roles ร tags intersection during routing. A TON
blockchain project never sees WeChat or Xiaohongshu marketing
agents. A Web SaaS never sees Solidity or ZK specialists.
The size of the catalogue is an asset, not a cost โ it means when your project grows into a new role (adds marketing, adds support, pivots to a new platform), the specialists are already curated and vetted. Install them on demand with:
python3 agents/scripts/install_extras.py --role marketing
See agents/STYLE.md for the canonical persona
template and agents/SCHEMA.md for the
frontmatter contract. Create the file under the right category
directory, run python3 agents/scripts/lint_agents.py to validate,
regenerate the index (build_index.py) and manifest
(build_manifest.py), and commit.
MIT โ see LICENSE. Copyright ยฉ 2026 GammaLab. Free to use, modify, fork, and ship commercial products built on top of.
Open a private security advisory via the repository's Security
tab โ see SECURITY.md. Do not open a public issue
for security-sensitive reports.
Harmonist welcomes contributions that raise the bar:
Before opening a PR, read CONTRIBUTING.md. For
non-trivial work, open an issue first to align on approach. Drive-
by reformatting will be closed; content-driven PRs will be reviewed
quickly.
SECURITY.md.python3 agents/scripts/check_pack_health.py
after every git pull.CODE_OF_CONDUCT.md.Harmonist is released under the MIT License โ Copyright ยฉ 2026 GammaLab. Free for commercial use, modification, and distribution.
GammaLab is a technology company working on robotics, artificial intelligence, and machine cognition. Harmonist is our first open-source release โ a tool we built to enforce engineering discipline in AI-assisted development, and one we use daily across our own internal projects.
If you ship production code with AI assistance and you care about making that code safe, auditable, and aligned with your project's actual rules โ Harmonist is for you.
If Harmonist helps you ship safer AI-assisted code, star the repository โ it's the cheapest signal you can send the maintainers that this work matters. โญ
Made with engineering discipline by GammaLab.
.gitattributes
.github/
ISSUE_TEMPLATE/
bug-report.yml
feature-request.yml
new-agent-request.yml
PULL_REQUEST_TEMPLATE.md
workflows/
ci.yml
release.yml
.gitignore
.gitlab-ci.yml
agents/
AGENTS.template.md
.gitattributes
.gitignore
academic/
academic-anthropologist.md
academic-geographer.md
academic-historian.md
academic-narratologist.md
academic-psychologist.md
design/
design-brand-guardian.md
design-image-prompt-engineer.md
design-inclusive-visuals-specialist.md
design-ui-designer.md
design-ux-architect.md
design-ux-researcher.md
design-visual-storyteller.md
design-whimsy-injector.md
engineering/
automation-governance-architect.md
blockchain-security-auditor.md
engineering-ai-data-remediation-engineer.md
engineering-ai-engineer.md
engineering-analytical-olap-engineer.md
engineering-autonomous-optimization-architect.md
engineering-backend-architect.md
engineering-cloud-finops.md
engineering-cms-developer.md
engineering-code-reviewer.md
engineering-cross-repo-refactor-specialist.md
engineering-cve-triage-analyst.md
engineering-data-engineer.md
engineering-database-optimizer.md
engineering-debug-specialist.md
engineering-devops-automator.md
engineering-email-intelligence-engineer.md
engineering-embedded-firmware-engineer.md
engineering-event-driven-architect.md
engineering-feishu-integration-developer.md
engineering-filament-optimization-specialist.md
engineering-frontend-developer.md
engineering-git-workflow-master.md
engineering-graphql-grpc-architect.md
engineering-incident-response-commander.md
engineering-inference-economics-optimizer.md
engineering-laravel-livewire-specialist.md
engineering-llm-evaluation-harness.md
engineering-migration-engineer.md
engineering-minimal-change-engineer.md
engineering-mobile-app-builder.md
engineering-opentelemetry-lead.md
engineering-rag-pipeline-architect.md
engineering-rapid-prototyper.md
engineering-security-engineer.md
engineering-software-architect.md
engineering-solidity-smart-contract-engineer.md
engineering-sre.md
engineering-technical-writer.md
engineering-threat-detection-engineer.md
engineering-wechat-mini-program-developer.md
lsp-index-engineer.md
specialized-document-generator.md
specialized-mcp-builder.md
specialized-salesforce-architect.md
specialized-workflow-architect.md
finance/
accounts-payable-agent.md
finance-bookkeeper-controller.md
finance-financial-analyst.md
finance-fpa-analyst.md
finance-investment-researcher.md
finance-tax-strategist.md
game-development/
blender/
blender-addon-engineer.md
game-audio-engineer.md
game-designer.md
godot/
godot-gameplay-scripter.md
godot-multiplayer-engineer.md
godot-shader-developer.md
level-designer.md
narrative-designer.md
roblox-studio/
roblox-avatar-creator.md
roblox-experience-designer.md
roblox-systems-scripter.md
technical-artist.md
unity/
unity-architect.md
unity-editor-tool-developer.md
unity-multiplayer-engineer.md
unity-shader-graph-artist.md
unreal-engine/
unreal-multiplayer-architect.md
unreal-systems-engineer.md
unreal-technical-artist.md
unreal-world-builder.md
index.json
integrations/
.gitignore
aider/
README.md
antigravity/
README.md
claude-code/
README.md
cursor/
README.md
gemini-cli/
README.md
github-copilot/
README.md
kimi/
README.md
mcp-memory/
backend-architect-with-memory.md
README.md
setup.sh
openclaw/
README.md
opencode/
README.md
README.md
windsurf/
README.md
marketing/
china/
marketing-baidu-seo-specialist.md
marketing-bilibili-content-strategist.md
marketing-china-ecommerce-operator.md
marketing-china-market-localization-strategist.md
marketing-douyin-strategist.md
marketing-kuaishou-strategist.md
marketing-livestream-commerce-coach.md
marketing-private-domain-operator.md
marketing-short-video-editing-coach.md
marketing-wechat-official-account.md
marketing-weibo-strategist.md
marketing-xiaohongshu-specialist.md
marketing-zhihu-strategist.md
marketing-agentic-search-optimizer.md
marketing-ai-citation-strategist.md
marketing-app-store-optimizer.md
marketing-book-co-author.md
marketing-carousel-growth-engine.md
marketing-content-creator.md
marketing-cross-border-ecommerce.md
marketing-growth-hacker.md
marketing-instagram-curator.md
marketing-linkedin-content-creator.md
marketing-podcast-strategist.md
marketing-reddit-community-builder.md
marketing-seo-specialist.md
marketing-social-media-strategist.md
marketing-tiktok-strategist.md
marketing-twitter-engager.md
marketing-video-optimization-specialist.md
orchestration/
agents-orchestrator.md
repo-scout.md
paid-media/
paid-media-auditor.md
paid-media-creative-strategist.md
paid-media-paid-social-strategist.md
paid-media-ppc-strategist.md
paid-media-programmatic-buyer.md
paid-media-search-query-analyst.md
paid-media-tracking-specialist.md
product/
product-behavioral-nudge-engine.md
product-feedback-synthesizer.md
product-manager.md
product-sprint-prioritizer.md
product-trend-researcher.md
project-management/
project-management-experiment-tracker.md
project-management-jira-workflow-steward.md
project-management-laravel-pm.md
project-management-project-shepherd.md
project-management-studio-operations.md
project-management-studio-producer.md
project-management-workflow-optimizer.md
README.md
review/
bg-regression-runner.md
code-quality-auditor.md
qa-verifier.md
security-reviewer.md
sre-observability.md
wcag-a11y-gate.md
sales/
sales-account-strategist.md
sales-coach.md
sales-deal-strategist.md
sales-discovery-coach.md
sales-engineer.md
sales-outbound-strategist.md
sales-pipeline-analyst.md
sales-proposal-strategist.md
SCHEMA.md
scripts/
_bash_py_guard.sh
_py_guard_snippet.py
build_index.py
build_manifest.py
check_pack_health.py
convert.py
convert.sh
deintegrate.py
detect_clones.py
detect_regression_commands.py
extract_essentials.py
insert_deep_ref_marker.py
install_extras.py
install.py
install.sh
integrate.py
lint_agents.py
lint-agents.sh
merge_agents_md.py
migrate_schema.py
onboard.py
project_context.py
refresh_py_guard.py
repomap.py
report_usage.py
run_regression.py
scan_agent_freshness.py
scan_agent_safety.py
scan_memory_leaks.py
scan_rules_conflicts.py
smoke_test.py
strict_slugs.py
telemetry_webhook.py
test_check_pack_health.sh
test_checklist.sh
test_cross_platform.py
test_detect_regression.sh
test_extract_essentials.sh
test_freshness.sh
test_git_hooks.sh
test_install_extras.sh
test_integrate_deintegrate.sh
test_memory_privacy.sh
test_merge_agents_md.sh
test_onboard.sh
test_project_context.sh
test_py_guard.sh
test_repomap.sh
test_rules_conflicts.sh
test_run_regression.sh
test_smoke_test.sh
test_supply_chain.sh
test_telemetry_webhook.sh
test_telemetry.sh
test_upgrade.sh
test_verify_integration.sh
upgrade.py
verify_integration.py
spatial-computing/
macos-spatial-metal-engineer.md
terminal-integration-specialist.md
visionos-spatial-engineer.md
xr-cockpit-interaction-specialist.md
xr-immersive-developer.md
xr-interface-architect.md
specialized/
agentic-identity-trust.md
compliance-auditor.md
corporate-training-designer.md
government-digital-presales-consultant.md
healthcare-marketing-compliance.md
identity-graph-operator.md
privacy-engineer.md
recruitment-specialist.md
report-distribution-agent.md
sales-data-extraction-agent.md
security-exploit-developer.md
security-pentest-report-writer.md
security-recon-mapper.md
security-red-team-operator.md
security-vulnerability-triage.md
security-web-app-pentester.md
specialized-civil-engineer.md
specialized-cultural-intelligence-strategist.md
specialized-developer-advocate.md
specialized-french-consulting-market.md
specialized-korean-business-navigator.md
study-abroad-advisor.md
supply-chain-strategist.md
zk-steward.md
STYLE.md
support/
support-analytics-reporter.md
support-executive-summary-generator.md
support-infrastructure-maintainer.md
support-legal-compliance-checker.md
support-support-responder.md
tags.json
TAGS.md
templates/
backend-engineer.md
frontend-engineer.md
infra-engineer.md
nexus-spatial-discovery.md
README.md
rules/
project-domain-rules.mdc.template
protocol-enforcement.mdc
workflow-book-chapter.md
workflow-landing-page.md
workflow-startup-mvp.md
workflow-with-memory.md
testing/
specialized-model-qa.md
testing-accessibility-auditor.md
testing-api-tester.md
testing-evidence-collector.md
testing-performance-benchmarker.md
testing-reality-checker.md
testing-test-results-analyzer.md
testing-tool-evaluator.md
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
GUIDE_EN.md
hooks/
.gitignore
hooks.json
hooks.posix.json
hooks.windows.json
README.md
scripts/
gate-shell.sh
gate-stop.sh
git-pre-commit.sh
hook_runner.py
install-git-hooks.sh
lib.sh
record-subagent-start.sh
record-subagent-stop.sh
record-write.sh
seed-session.sh
tests/
run-hook-tests.sh
integration-prompt.md
LICENSE
MANIFEST.sha256
memory/
.gitignore
decisions.md
memory.py
migrations.py
patterns.md
README.md
SCHEMA.md
session-handoff.md
tests/
run-memory-tests.sh
validate.py
playbooks/
checklists/
schema.json
security-privacy-hardening.json
validate.py
coordination/
agent-activation-prompts.md
handoff-templates.md
EXECUTIVE-BRIEF.md
nexus-strategy.md
playbooks/
phase-0-discovery.md
phase-1-strategy.md
phase-2-foundation.md
phase-3-build.md
phase-4-hardening.md
phase-5-launch.md
phase-6-operate.md
QUICKSTART.md
runbooks/
scenario-enterprise-feature.md
scenario-incident-response.md
scenario-marketing-campaign.md
scenario-startup-mvp.md
skills/
authorized-web-pentest.md
... 11 moreShowing a partial view of a very large repo.
FAQ
harmonist is a Claude Code plugin with hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.