安装插件后必须重启 agy,否则 Antigravity 不会发现新插件;Codex 本地开发时路径必须以 ./、../、/ 或 ~/ 开头,否则会被当作 GitHub 仓库;Claude Code 和 Codex 下审查、调试、续跑命令改名为 /review-code、/debug-workflow、/resume-session,避免与宿主内置命令冲突
maestro-orchestrate
jossteiApache-2.0活跃维护多智能体编排平台,把 Gemini CLI、Claude Code、Codex 等编码助手组织成 39 个专职子代理并行干活,内置代码审查、调试、安全与合规检查。
Multi-agent orchestration platform for Gemini CLI, Claude Code, Codex, and Qwen Code — 39 specialists, parallel subagents, persistent sessions, and built-in code review, debugging, security, SEO, accessibility, and compliance tools
agy plugin install https://github.com/josstei/maestro-orchestrate/tree/main/antigravity
claude plugin marketplace add josstei/maestro-orchestrateREADME 未说明硬件要求,仅要求 Node.js 20+ 用于 MCP 服务器和辅助脚本,并需先安装一个受支持的运行时(Antigravity、Claude Code、Codex 或 Qwen Code)
面向 Gemini CLI、Claude Code、Codex 和 Qwen Code 的多智能体开发编排平台,用 39 个专家智能体分工执行任务
多智能体编排平台,把 Gemini CLI、Claude Code、Codex 等编码助手组织成 39 个专职子代理并行干活,内置代码审查、调试、安全与合规检查。
核心能力
- 内置 39 个专家智能体,按任务类型自动分配
- Express 与四阶段 Standard 两套工作流,按复杂度自动选择
- 支持并行子智能体与持久化会话状态,可断点续跑
- 内置代码审查、调试、安全、性能、SEO、无障碍与合规检查入口
- 同一份 src/ 源码生成 Antigravity、Claude Code、Codex、Qwen Code 四套运行时
容易踩的坑
- v1.6.4最新正式版2026-04-30 · 2026-04-30 06:25 UTC
Added
- Maestro cheatsheet: added an English quick-reference guide covering supported runtimes, common commands, workflow concepts, and suggested reading order.
Changed
- npm package identity: renamed the planned npm package to
@josstei/maestro, added[email protected]to public author metadata, and moved the stable release publish path into GitHub Actions with npm token authentication.
Fixed
- Stable npm release recovery: Release now uses
NPM_TOKENfor stable publishes, uses verified Git tag lookups, supports manual recovery from an existingvX.Y.Ztag and target SHA, and enforces a stable-onlylatestdist-tag through the idempotent npm publish helper. Prerelease publishes defer stalelatestrepair when no stable version exists instead of attempting to delete npm'slatesttag. - Codex plugin MCP server fails to start: corrected
npxargs inplugins/maestro/.mcp.json— added-p/--packageflag somaestro-mcp-serveris resolved as the binary name rather than an argument to the package's default binary. - Release metadata drift: runtime manifests, marketplace entries, detached payload versions, and Codex MCP package specs are now generated from
package.jsonso stable and prerelease packages stay self-consistent.
- v1.6.32026-04-21 · 2026-04-21 23:45 UTC
查看更新说明
Added
- 5 new MCP tools (Session pack 5 → 10; total pack count 12 → 17):
enter_design_gate,record_design_approval,get_design_gate_status— server-side design-gate lifecycle;create_sessionnow enforces approval before session creationscan_phase_changes,reconcile_phase— post-hoc phase reconciliation when an agent's actual file manifest diverges from the plan
- 17 additional specialist agents — Expanded the roster from 22 to 39 specialists:
- ML / AI:
ml-engineer,mlops-engineer,prompt-engineer - Ops / reliability:
site-reliability-engineer,observability-engineer,release-manager - Platform:
cloud-architect,platform-engineer,solutions-architect,integration-engineer - Data / mobile:
database-administrator,mobile-engineer - Mainframe / legacy:
cobol-engineer,db2-dba,zos-sysprog,hlasm-assembler-specialist,ibm-i-specialist
- ML / AI:
maestro-mcp-serverbin (bin/maestro-mcp-server.js) — Thin Node entrypoint declared inpackage.jsonbin; setsMAESTRO_RUNTIME=codexandMAESTRO_EXTENSION_PATH, then delegates tosrc/mcp/maestro-server.js. Invoked by Codex vianpx.- Root-level Codex marketplace manifest (
.agents/plugins/marketplace.json) — Makes the repo a valid marketplace target forcodex marketplace add. - Declarative
requiresWorkspacetool contract — Tool schemas carryrequiresWorkspace: truewhen they depend on an initialized workspace; the registry captures the metadata and the dispatcher enforces it before handler invocation, returning a typedWORKSPACE_NOT_INITIALIZEDerror that namesinitialize_workspacein the recovery message. - Workspace marker file module —
initialize_workspacenow writes a canonical marker andrequireExplicitWorkspaceRootrejects extension-cache paths. - Content variant for design-gate and implementation-plan submission —
record_design_approvalacceptsdesign_document_content+design_document_filename;create_sessionacceptsimplementation_plan_content+implementation_plan_filename. Bytes are materialized atomically into<state_dir>/plans/by the server. Motivation: Gemini Plan Mode resolves relative paths against~/.gemini/tmp/<uuid>/, so a path the model hands back to MCP never resolves to the same file the server sees — the content variant bypasses runtime-specific path resolution. - Shared plan-phase schema contract (
src/mcp/contracts/plan-schema.js) — Single source of truth for phase shape consumed by bothvalidate_planandcreate_session.phase.filesis recognized as the planning-time canonical file manifest and is checked byfile_overlapandagent_capability_mismatchvalidators. downstream-contextcontract module (src/mcp/contracts/downstream-context.js) — Canonical handoff shape: accepts string or array, handles'none'/'n/a'/empty-string sentinels, and embeds a human-readable shape description in theHANDOFF_INCOMPLETEerror.- Runtime
delegation.constraintsobject — Per-runtime machine-readable constraints exposed viaget_runtime_context. Codex declares deferred results and fork-incompatibility withagent_type/model/reasoning_effort; Claude, Gemini, and Qwen declare synchronous dispatch. - Blocker parser for child-agent question surfacing — Agents emit a
Blockers:section in their handoff report; the orchestrator surfaces unresolved blockers back to the user. workspace_suggestioninget_runtime_context— Server surfaces a recommended workspace path for runtimes that cannot auto-resolve one.- Per-entry
runtimeNames— Each entry-point registry entry owns its per-runtime rename declaratively; replaces the centralizedENTRY_POINT_NAME_OVERRIDESmap. - Host-reserved command protection extended to Claude — Entry-point generation now rejects names that would shadow Claude's built-in slash commands (
review,debug,resume). Previously only Codex was guarded.
- 5 new MCP tools (Session pack 5 → 10; total pack count 12 → 17):
- v1.6.22026-04-15 · 2026-04-15 05:57 UTC
查看更新说明
Added
- Qwen Code runtime support (#26) — Fourth runtime target with hook adapter, extension manifest (
qwen-extension.json), context file (QWEN.md), 22 agent stubs, andhooks.jsonforSubagentStart/SubagentStoplifecycle events getExitCode(result)adapter contract (#42) — Each hook adapter now owns its exit code semantics; sharedexit-codes.jsconstants (EXIT_SUCCESS,EXIT_BLOCK) verified against Gemini CLI, Claude Code, and Codex CLI source- npm publishing workflows — Nightly (cron), preview (PR label), RC (release PR), and stable release pipelines with
NPM_TOKENgating - Community standards — Code of Conduct (Contributor Covenant v2.1), Contributing Guide, Security Policy, issue/PR templates
- CI/CD pipeline documentation (
docs/cicd.md) — Mermaid workflow diagrams, job breakdowns, release pipeline chain, and cross-references from existing docs lib/foundation layer — 6 shared modules (errors,io,naming,frontmatter,validation,discovery) extracted from duplicated implementations across the codebase- Exhaustive test coverage — 121 tests across 22 files wired into CI; previously only transforms and integration tests ran in CI
- Build-time auto-discovered registries —
agent-registry.json,resource-registry.json,hook-registry.jsonscanned at generate time, replacing hardcoded allowlists
Changed
- Thin multi-runtime entrypoints — Replaced generated
canonical-source.js, MCP entrypoint, hook-runner, and adapter copies with hand-authored wrappers that defaultMAESTRO_RUNTIMEper runtime and use bounded repo-first / bundled-fallback resolution for detached Claude and Codex installs - Generator architecture (
src/manifest.js,scripts/generate.js) — Simplified the manifest to 2 discovery rules, reduced the generation-time transform registry from 10 entries to 4, and added an explicit detached-payload pack step forclaude/src/andplugins/maestro/src/ - Generator decomposed — 807-line monolith split into focused modules:
file-writer,manifest-expander,stale-pruner,payload-builder,registry-scanner,entry-point-expander - Codex plugin packaging — Removed unused
plugins/maestro/agents/stubs; Codex now relies on skills, MCP tools, andget_agentfor methodology instead of plugin-level agent files - Centralized policy rules — Claude policy-enforcer imports from canonical
src/core/policy-rules.jswith bundled fallback; deduplicatedreadBoundedStdinintocore/stdin-reader.js - Lazy-loaded runtime configs — Runtime configs loaded on demand with per-runtime detached payload filtering
- Minimum Node.js version — Raised to 20 (Node 18 EOL);
enginesfield declared inpackage.json - Package renamed — From
@maestro-orchestrator/gemini-extensionto@maestro-orchestrator/maestro - Runtime documentation — Updated Gemini, Claude, and Codex runtime docs to describe thin entrypoints plus detached payloads rather than generated helper copies
- Documentation aligned — All docs updated to match post-consolidation codebase state
Fixed
- Codex public skill naming collisions — Renamed the public Codex skills to
$maestro:review-code,$maestro:debug-workflow, and$maestro:resume-sessionso installing Maestro does not shadow or break Codex's built-in/review,/debug, and/resumecommands - LLM string-to-integer coercion — Phase IDs sent as strings by LLMs in
transition_phasenow parsed correctly before phase lookups
- Qwen Code runtime support (#26) — Fourth runtime target with hook adapter, extension manifest (
- v1.6.12026-04-10 · 2026-04-10 06:14 UTC
查看更新说明
Added
- Self-contained Claude runtime payload (
src/manifest.js) — Added'claude'to the self-contained runtime payload manifest rule (already used by Codex) so the fullsrc/tree is bundled intoclaude/src/; canonical-source resolution now succeeds from plugin caches outside the repo tree withIsolatedClaudePlugintest helper (tests/integration/helpers.js) — Copies the generatedclaude/directory into an isolated temp directory for testing plugin behavior outside the repo tree; mirrors the existingwithIsolatedCodexPluginhelper- Isolated Claude bundle integration tests — Hook entrypoint boot test, MCP server startup test, MCP tool listing and content serving tests, all running against an isolated plugin bundle
Fixed
- Claude plugin canonical-source resolution from plugin cache —
requireFromCanonicalSrc(__dirname)in hook scripts (session-start.js,before-agent.js,session-end.js) and MCP entry-point walked up from~/.claude/plugins/cache/looking forsrc/mcp/maestro-server.jsbut never found it because the Claude runtime did not bundlesrc/; resolved by the self-contained payload rule above
- Self-contained Claude runtime payload (
- v1.6.02026-04-10 · 2026-04-10 05:51 UTC
查看更新说明
Added
- Codex runtime target (
plugins/maestro/) — Complete third runtime for OpenAI Codex with plugin manifest, 22 agent stubs, 19 skills, MCP entry-point, and runtime guide; agents use kebab-case names andspawn_agent(...)delegation - Canonical source architecture — Single
src/tree serves all three runtimes (Gemini, Claude, Codex) viarequireFromCanonicalSrc()dynamic resolution, eliminating verbatim lib copies and runtime-specific source directories get_agentMCP tool — Returns agent methodology content by name, enabling runtime access to agent definitions without filesystem readsget_runtime_contextMCP tool — Returns runtime-specific configuration (delegation patterns, tool mappings, environment variables) for the active platform- Entry-point generation system (
src/entry-points/) — Registry of 9 entry-point commands with 3 per-runtime templates (Gemini TOML, Claude SKILL.md, Codex SKILL.md); entry-point commands are now generated rather than hand-maintained - 4 new transforms —
agent-stub(generates lightweight stubs that load methodology via MCP),inline-runtime(injects runtime-specific content blocks),skill-discovery-stub(generates skill stubs that load content via MCP),copy(verbatim file copy) canonical-source.jsutility (src/core/) —requireFromCanonicalSrc()resolves the canonicalsrc/directory from any runtime entry-point by walking parent directories; deployed as thin shims in each runtime'smcp/andscripts/directoriesproject-root-resolver.jsrewrite (src/core/) — Multi-strategy workspace resolution supporting all three runtimes: env vars (MAESTRO_WORKSPACE_PATH,CLAUDE_PROJECT_DIR), git root detection, and cwd fallback- Justfile — Development commands:
just test,just check,just test-transforms,just test-integration; replaces ad-hoc npm scripts - Documentation suite (
docs/) — 7 focused docs replacing old plans/specs:overview.md,architecture.md,flow.md,usage.md,runtime-gemini.md,runtime-claude.md,runtime-codex.md - 27 new test files — MCP handler tests (content provider, runtime context, kernel, session pack, workspace pack, content pack, pack composition), transform tests (copy, index, project-root-resolver), integration tests (entry-point templates, hook entry-points, glob manifest, source of truth, MCP server bundle behavior, MCP server entry-point, MCP stdio client helper)
- CI release workflow (
.github/workflows/release.yml) — Automated GitHub releases from version tags usingCHANGELOG.mdcontent
Changed
- MCP server decomposed — Monolithic ~38k-line bundles (
mcp/maestro-server.js,claude/mcp/maestro-server.js) replaced by ~14-line entry-points delegating to modularsrc/mcp/tree: 8 handlers, 3 tool-packs (workspace, session, content), core modules (server creation, tool registry, recovery hints), and utilities (extension root resolution) - Generator rewrite (
scripts/generate.js) — Updated to support manifest expansion with glob patterns, transform pipeline across three runtimes, entry-point rendering from templates, platform file mapping, and stale file pruning src/manifest.jsexpanded — Glob patterns, per-runtime platform file mappings, entry-point generation rules, and self-contained Codexsrc/payload rules- Codex skill names — Dropped
maestro-prefix from all skill names; skills use plugin namespace directly ($maestro:orchestrateinstead of$maestro:maestro-orchestrate) - Shared skills restructured — All 7 methodology skills (delegation, design-dialogue, execution, implementation-planning, session-management, code-review, validation) updated to load protocols and references via
get_skill_contentMCP tool instead of filesystem reads - Agent methodologies — All 22 agents updated with explicit tool access declarations in frontmatter; Claude and Codex runtimes serve methodology content via MCP at runtime ra
- Codex runtime target (
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Maestro
Maestro is a multi-agent development orchestration platform with 39 specialists, an Express path for simple work, a 4-phase standard workflow for medium and complex work, persistent session state, and standalone review/debug/security/perf/seo/accessibility/compliance entrypoints. It runs from one canonical src/ tree across Antigravity, Claude Code, Codex, and Qwen Code.
Runtime Targets
| Runtime | Location | Public Surface | Notes |
|---|---|---|---|
| Antigravity | antigravity/ | /maestro:* | Plugin skills, kebab-case subagents run with invoke_subagent, SessionStart and run_command policy hooks |
| Claude Code | claude/ | /orchestrate, /review-code, ... | Kebab-case agents with maestro: subagent names |
| Codex | plugins/maestro/ | $maestro:* | Plugin skills, spawn_agent, no runtime hooks |
| Qwen Code | repo root + qwen/hooks.json | /maestro:* | Snake-case agents, TOML commands, QWEN.md context file, SubagentStart/SubagentStop hooks |
Getting Started
Prerequisites
- One supported runtime: Antigravity (the
agyCLI or the Antigravity app), Claude Code, Codex, or Qwen Code - Node.js 20+ for the MCP server and helper scripts
Installation
Antigravity
agy plugin install https://github.com/josstei/maestro-orchestrate/tree/main/antigravity
Restart agy afterwards: Antigravity discovers a newly installed plugin only on startup. Verify with agy plugin list.
Local development (link the plugin directory, then restart agy; a linked plugin loads but is not listed by agy plugin list):
git clone https://github.com/josstei/maestro-orchestrate
mkdir -p ~/.gemini/config/plugins
ln -s "$PWD/maestro-orchestrate/antigravity" ~/.gemini/config/plugins/maestro
More Antigravity-specific setup and runtime details live in antigravity/README.md and docs/runtime-antigravity.md.
Claude Code
Marketplace install:
claude plugin marketplace add josstei/maestro-orchestrate
claude plugin install maestro@maestro-orchestrator --scope user
Development / temporary loading:
git clone https://github.com/josstei/maestro-orchestrate
claude --plugin-dir /path/to/maestro-orchestrate/claude
More Claude-specific setup and plugin management lives in claude/README.md.
Codex
Register the marketplace:
codex plugin marketplace add josstei/maestro-orchestrate
Then start Codex, run /plugins to browse, select Maestro, and choose Install.
Local development (path must start with ./, ../, /, or ~/ — Codex otherwise treats bare owner/repo as a GitHub source):
git clone https://github.com/josstei/maestro-orchestrate
codex plugin marketplace add /absolute/path/to/maestro-orchestrate
# then: start Codex, run `/plugins`, select Maestro → Install
More Codex-specific setup and runtime details live in plugins/maestro/README.md and docs/runtime-codex.md.
Qwen Code
qwen extensions install https://github.com/josstei/maestro-orchestrate
Local development:
git clone https://github.com/josstei/maestro-orchestrate
cd maestro-orchestrate
qwen extensions link .
Verify with qwen extensions list. Qwen Code reads QWEN.md as its context file and loads the /maestro:* commands from commands/maestro/*.toml.
Quick Start
Start a full orchestration with the runtime-specific entrypoint:
| Runtime | Example |
|---|---|
| Antigravity | /maestro:orchestrate Build a REST API for a task management system with user authentication |
| Claude Code | /orchestrate Build a REST API for a task management system with user authentication |
| Codex | $maestro:orchestrate Build a REST API for a task management system with user authentication |
| Qwen Code | /maestro:orchestrate Build a REST API for a task management system with user authentication |
Maestro classifies the task, chooses Express or Standard workflow, asks the required design questions, produces an implementation plan when needed, delegates execution to specialists, runs a quality gate, and archives the session state in docs/maestro/.
Examples
Usage examples: EXAMPLES.md. Qwen Code forms shown:
- Full orchestration:
/maestro:orchestrate Build a REST API for a task management system with user authentication - Standalone review:
/maestro:review Review the staged changes for correctness, regressions, security, maintainability risk, and missing tests - Security audit:
/maestro:security-audit Audit authentication, authorization, data exposure, secret handling, and exploitability risks
Configuration
Defaults work; these settings tune behavior:
| Setting | Default | Purpose |
|---|---|---|
MAESTRO_STATE_DIR | docs/maestro | Session, plan, and archive output path |
MAESTRO_EXECUTION_MODE | ask | Choose parallel, sequential, or prompt |
MAESTRO_VALIDATION_STRICTNESS | normal | Post-phase validation strictness (strict, normal, or lenient) |
MAESTRO_AUTO_ARCHIVE | true | Archive successful sessions automatically |
MAESTRO_MAX_RETRIES | 2 | Retry limit for failed phases |
MAESTRO_MAX_CONCURRENT | 0 | Parallel-agent cap, where 0 means no Maestro cap |
MAESTRO_DISABLED_AGENTS | unset | Specialists to exclude from assignment |
Commands
| Capability | Antigravity | Claude Code | Codex | Qwen Code |
|---|---|---|---|---|
| Orchestrate | /maestro:orchestrate | /orchestrate | $maestro:orchestrate | /maestro:orchestrate |
| Execute | /maestro:execute | /execute | $maestro:execute | /maestro:execute |
| Resume | /maestro:resume-session | /resume-session | $maestro:resume-session | /maestro:resume |
| Status | /maestro:status | /status | $maestro:status | /maestro:status |
| Archive | /maestro:archive | /archive | $maestro:archive | /maestro:archive |
| Review | /maestro:review-code | /review-code | $maestro:review-code | /maestro:review |
| Debug | /maestro:debug-workflow | /debug-workflow | $maestro:debug-workflow | /maestro:debug |
| Security Audit | /maestro:security-audit | /security-audit | $maestro:security-audit | /maestro:security-audit |
| Performance Check | /maestro:perf-check | /perf-check | $maestro:perf-check | /maestro:perf-check |
| SEO Audit | /maestro:seo-audit | /seo-audit | $maestro:seo-audit | /maestro:seo-audit |
| Accessibility Audit | /maestro:a11y-audit | /a11y-audit | $maestro:a11y-audit | /maestro:a11y-audit |
| Compliance Check | /maestro:compliance-check | /compliance-check | $maestro:compliance-check | /maestro:compliance-check |
For Claude Code and Codex, Maestro intentionally avoids bare skill names that collide with host commands. Use /review-code, /debug-workflow, and /resume-session in Claude Code, and $maestro:review-code, $maestro:debug-workflow, and $maestro:resume-session in Codex, so built-in /review, /debug, and /resume commands keep working.
Antigravity has a built-in /resume, so it uses the same remapped names under its plugin namespace: /maestro:review-code, /maestro:debug-workflow, and /maestro:resume-session.
Qwen Code does not remap any entry point; it keeps /maestro:review, /maestro:debug, and /maestro:resume.
Workflow
- Express: For simple work. Maestro asks 1-2 clarifying questions, proposes a brief, delegates to one specialist, runs code review, and archives without a design doc or implementation plan.
- Standard: For medium and complex work. Maestro runs Design, Plan, Execute, and Complete phases with explicit approval gates, phased execution, and final review blocking on unresolved Critical or Major findings.
Outputs and Success Criteria
Maestro writes orchestration outputs under MAESTRO_STATE_DIR, usually docs/maestro/. Standard workflow outputs include active session state, design documents, implementation plans, phase reports, validation output, and archived records.
A successful run must have an approved plan when Standard workflow is used, completed phase reports, validation results for the changed surface, and no unresolved Critical or Major review findings. If a phase cannot complete, Maestro records the blocker and the next required action instead of silently continuing.
Security and Permissions
Maestro follows the host runtime's tool permissions, sandboxing, and confirmation model. It does not require committed secrets or long-lived credentials, and orchestration session state stays inside MAESTRO_STATE_DIR unless configured otherwise. Use MAESTRO_DISABLED_AGENTS to restrict specialists in sensitive repositories, and run $maestro:security-audit or the equivalent runtime command before adopting changes that touch authentication, authorization, secrets, or data exposure paths.
Documentation
- EXAMPLES.md for copyable usage scenarios across all runtimes
- docs/overview.md for the project model and generated structure
- docs/architecture.md for orchestration internals and architecture layout
- docs/usage.md for development workflow, settings, and command surfaces
- docs/flow.md for the orchestration workflow steps and hard gates
- docs/maestro-cheatsheet.md for a one-page command and runtime quick reference
- docs/cicd.md for CI/CD pipeline workflows, release process, and Mermaid diagrams
- docs/runtime-antigravity.md for Antigravity runtime specifics
- docs/runtime-claude.md for Claude runtime specifics
- docs/runtime-codex.md for Codex runtime specifics
- docs/runtime-qwen.md for Qwen runtime specifics
Development and Release Validation
Canonical source lives under src/. The generator writes the agent stubs, commands, skills, manifests, hook registrations, policy pack, and detached src/ payloads under agents/, commands/, policies/, antigravity/, claude/, plugins/maestro/, and qwen/; update src/ first, then regenerate. A few runtime files are maintained by hand, mainly the thin MCP-server and hook-runner shims, the READMEs, and QWEN.md (CONTRIBUTING.md lists them).
npm ci
node scripts/generate.js
git diff --exit-code --name-only
npm test
npm run pack:verify
npm run release:artifacts
npm run release:verify-artifacts
Release validation creates dist/release/maestro-vX.Y.Z-extension.tar.gz. The archive is intentionally generic: it unpacks with qwen-extension.json, .claude-plugin/marketplace.json, and .agents/plugins/marketplace.json at the root, plus the runtime payloads needed by Antigravity (antigravity/), Claude Code, Codex, and Qwen Code.
Stable releases publish three aligned outputs:
- Git tag
vX.Y.Z - npm package
@josstei/[email protected] - GitHub Release asset
maestro-vX.Y.Z-extension.tar.gz
Codex plugin releases launch the MCP server through the matching npm package version. The Antigravity plugin is self-contained: an installed copy runs the MCP server and hooks from its bundled antigravity/src/. Hook installation is explicit via npm run install-hooks; package, pack, and publish flows do not install git hooks.
License
Apache-2.0