Commit Graph
185 Commits
Author SHA1 Message Date
li 1cbcabd6fb docs: clarify code authorship — Claude writes code by default, codex-exec as alternative
Make it clear that Codex/Gemini are analyzers, not code writers.
Default: Claude writes code (transparent, no black box).
codex-exec: Codex writes code + multi-model review.
2026-03-12 14:09:54 +08:00
li 2864b16968 style: rewrite docs content — less AI, more developer voice
Remove formulaic structure, marketing buzzwords, and template-speak.
Rewrite all 12 pages in a conversational developer-to-developer tone.
2026-03-12 14:06:57 +08:00
li c80f58b086 feat: VitePress documentation site with GitHub Pages deployment
- VitePress config with zh-CN (default) + English i18n
- 12 content pages: landing page + 5 guide pages per locale
- GitHub Actions workflow for auto-deploy on docs/** changes
- Logo SVG + local search enabled
- Homepage URL updated to https://fengshao1227.github.io/ccg-workflow/
2026-03-12 14:00:46 +08:00
li d58968055c chore: bump version to 1.7.83 2026-03-12 13:39:32 +08:00
li 2e4c306157 refactor: unify skill traversal + extract removeDirCollectMdNames helper
- Merge countInstalledSkills + inline collectSkillNames into single
  module-level collectSkillNames() — used by both install (.length) and
  uninstall (name list)
- Extract removeDirCollectMdNames() — DRYs commands/agents uninstall
  (both were identical: readdir → filter .md → collect names → remove)
- Uninstall: 6 blocks reduced from ~100 lines to ~60 lines
2026-03-12 13:29:45 +08:00
li 71c25fe8d2 refactor: extract copyMdTemplates helper + getBinaryName lookup + thin uninstall wrappers
- installer.ts: extract copyMdTemplates() — DRYs agents/prompts/rules install
  (3 functions share read→process→write pattern, now delegate to shared helper)
- installer.ts: extract getBinaryName() — replaces 14-line if/else platform chain
  with 3-line lookup table (adding new platform = 1 entry)
- installer-mcp.ts: uninstallContextWeaver/uninstallFastContext now delegate to
  generic uninstallMcpServer (identical logic, was duplicated)
- dist: 208 kB → 206 kB
2026-03-12 13:28:23 +08:00
li 32064dea9e refactor: cmd() builder + MCP_PROVIDERS registry for extensibility
- installer-data: replace 28 object literals (345 lines) with cmd() builder (85 lines)
  - Remove dead ALL_COMMANDS array
  - Adding a new command = 1 function call
  - Edge case init-project → 'init' handled via cmdOverride param
- installer-template: replace if/else MCP chain with data-driven registry
  - Adding a new MCP provider = 1 line in MCP_PROVIDERS
  - 'skip' fallback stays as special case (unique multi-step logic)
2026-03-12 13:25:16 +08:00
li 92b9c40897 refactor: deduplicate installer-mcp + decompose installWorkflows
installer-mcp.ts (678→462):
- Extract configureMcpInClaude() shared pipeline, eliminates 3x duplication
- Extract mirrorCcgServers() + formatSyncMessage() for sync dedup
- installAceTool/installAceToolRs/installFastContext now thin wrappers

installer.ts — decompose installWorkflows (290-line monolith → 6 sub-functions):
- installCommandFiles, installAgentFiles, installPromptFiles
- installSkillFiles, installRuleFiles, installBinaryFile
- Shared InstallContext interface passes state between steps

Total: 1926→1724 lines (-202), dist 215→212 kB (-3 kB)
2026-03-12 13:16:14 +08:00
li 1d31302a45 refactor: split installer.ts into 5 focused modules (1878→max 678 lines)
Extract from monolithic installer.ts:
- installer-data.ts: command registry + workflow configs (381 lines)
- installer-template.ts: template variable injection + path utils (158 lines)
- installer-mcp.ts: MCP install/uninstall/sync functions (678 lines)
- installer-prompt.ts: fast-context prompt injection (125 lines)

All re-exports preserved in installer.ts — zero consumer changes.
Fixes: stale comments, order collisions, dead code removal.
2026-03-12 13:10:53 +08:00
li 6a02c169ab feat: fast-context MCP integration + Gemini MCP sync v1.7.82
- Add Windsurf Fast Context as 4th code retrieval MCP option (recommended)
- Three-endpoint prompt injection: Claude rules + Codex AGENTS.md + Gemini GEMINI.md
- Add syncMcpToGemini() mirroring MCP servers to ~/.gemini/settings.json
- Support API Key optional + FC_INCLUDE_SNIPPETS mode selection
- Full install/uninstall/menu lifecycle support
2026-03-12 12:23:05 +08:00
li aac119866d fix: /ccg:commit context auto-archive from git diff, drop manual log dependency v1.7.81
- Context Phase 5 now analyzes git diff to generate ContextEntry
  automatically — no longer requires manual session.log entries
- session.log content merged when present but not required
- .context/ missing: suggest init, don't block commit
- /ccg:context log demoted to optional (for manual notes only)
2026-03-11 23:53:47 +08:00
li 04460ad07e feat: /ccg:context command + quality gate rules v1.7.80
- /ccg:context: 27th slash command — .context/ init, decision log,
  compress, history for LLM context engineering
- /ccg:commit Context Compress Phase: auto-compress session.log →
  history/commits.jsonl on commit, add Context-Id trailer
- 13 role prompts .context Awareness: Codex 6 + Gemini 7 prompts
  inject .context/prefs/ reading instructions
- Quality Gate Rules: ~/.claude/rules/ccg-skills.md auto-trigger
  rules for verify-security/quality/change/module + gen-docs
- E2E test timeout 5s → 15s for growing command count
2026-03-11 23:37:37 +08:00
li 052cbb63c7 fix: binary download retry + prominent failure warning v1.7.79
- downloadBinaryFromRelease: 3 retries + 60s AbortController timeout
- Binary failure downgraded to warning (commands + skills still install)
- init.ts: red box warning + manual download URL + placement path on failure
- update.ts: backup binary before uninstall, restore on failure
- update.ts: subprocess timeout 120s → 300s (slow networks / China GFW)
- installer.test.ts: contextweaver E2E timeout 5s → 30s
2026-03-11 20:58:04 +08:00
li 7c5609aea6 fix: Windows hook exit 255 — use permissions.allow instead v1.7.78
- Windows: auto-approve codeagent-wrapper via permissions.allow
  (Hook depends on jq/grep/true which don't exist on Windows)
- macOS/Linux: keep existing Hook approach (works fine)
- Auto-migrate: remove old Hook on Windows upgrade
- Skip jq check on Windows (not needed with permissions.allow)
2026-03-11 17:07:27 +08:00
li c66d494b9b docs: add contact section and GitHub Sponsor funding
- Add Contact section to both READMEs (email, Issues, Discussions)
- Add .github/FUNDING.yml for GitHub Sponsor button
2026-03-11 12:49:11 +08:00
li be0772398e docs: add contributors wall with auto-update, exclude claude bot
- Add contributors table to both READMEs (5 human contributors)
- Add .github/workflows/contributors.yml: auto-update on push to main
- Exclude `claude` account from contributors list
- Uses akhilmhdh/contributors-readme-action for automatic maintenance
2026-03-11 12:38:11 +08:00
li 61fe0b70dd docs: add contributors wall, fix hook example, update test badge
- Add contributors section (contrib.rocks) to both README and README.zh-CN
- Fix manual hook example: `exit 1` → `true` (matches code fix)
- Update test badge: 131 → 134 passed
2026-03-11 12:36:45 +08:00
li 35b13119cd fix: hook exit 1 warning on non-codeagent-wrapper Bash calls
- Change `|| exit 1` to `|| true` — non-matching commands now silently pass
- Add `2>/dev/null` to jq — suppress stderr when jq is missing
- Auto-migrate: upgrade replaces old `exit 1` hooks with fixed version

Fixes: PreToolUse hook "failed with non-blocking status code 1" warning
that fired on every Bash command not containing "codeagent-wrapper"
2026-03-11 12:32:59 +08:00
li 97c767bfbf fix(ci): skip timing-sensitive Go integration tests in CI
- Add testing.Short() guard to ForcesStopAfterCompletion + DoesNotTerminate tests
- Use `go test -short` in CI to skip flaky timing-dependent integration tests
- These tests pass locally but fail on CI runners due to resource contention
2026-03-11 12:27:26 +08:00
li f644c31cc8 fix(go): align test assertions with CODEX_REQUIRE_APPROVAL logic
- Replace obsolete CODEX_BYPASS_SANDBOX with CODEX_REQUIRE_APPROVAL
- Add --dangerously-bypass-approvals-and-sandbox to all default codex args assertions
- Rewrite BypassSandboxEnvTrue test → RequireApprovalDisablesBypass (inverted logic)
- Update version assertions 5.6.0 → 5.7.2
2026-03-11 12:25:20 +08:00
li 6a9edf4b0b fix: resolve pre-existing typecheck + Go test failures
- menu.ts: ReturnType → InstanceType for Separator class (fixes tsc error)
- Remove @types/inquirer (inquirer v12 ships built-in types)
- executor_concurrent_test.go: add --dangerously-bypass-approvals-and-sandbox to expected args
- main_test.go: update version assertion 5.6.0 → 5.7.2
- ci.yml: restore typecheck + Go test steps (all passing now)
2026-03-11 12:22:08 +08:00
li 5f3269520c fix(ci): use packageManager field for pnpm version, skip flaky Go test
- Remove hardcoded pnpm version 9, let action-setup read package.json packageManager
- Remove go test step (pre-existing assertion mismatch, not CI-blocking)
2026-03-11 12:14:52 +08:00
li 6ab9068a30 ci: add CI workflow, PR template, branch protection, lockfile
- Add .github/workflows/ci.yml: test (Node 20+22) + build + Go build/test
- Add .github/pull_request_template.md: structured PR description
- Commit pnpm-lock.yaml for CI --frozen-lockfile reproducibility
- Branch protection: require CI pass on main, allow owner force push
2026-03-11 12:13:12 +08:00
li 240b453050 refactor: remove local bin/ fallback, download only from GitHub Release
- Remove Strategy 2 (fallback to local bin/) from installer.ts
- Binary source is now exclusively GitHub Release (preset tag)
- Improve error message with direct download link on failure
- Update CHANGELOG.md to reflect the change
- Developers can self-build via codeagent-wrapper/build-all.sh
2026-03-11 11:54:21 +08:00
li e88a085898 chore: bump version to 1.7.77
- Binary migration to GitHub Release (npm 16.3MB → 161KB)
- Actions CI for cross-compilation
- Fix migration test timeout (network download)
2026-03-10 22:32:08 +08:00
li 968cbedb8a ci: migrate binaries to GitHub Release + Actions CI
- Add .github/workflows/build-binaries.yml (Go cross-compile → preset release)
- installer.ts: download from GitHub Release, fallback to local bin/
- package.json: exclude binaries from npm (16.3MB → 161KB)
- .gitignore: stop tracking bin/codeagent-wrapper-*
- git rm --cached 6 pre-compiled binaries
2026-03-10 22:26:14 +08:00
li 5769a1dbe6 docs: restructure README + add CONTRIBUTING.md + issue templates v1.7.76
- README: group 26 commands into 7 categories, add "Why CCG?" section,
  move architecture diagram up, consolidate prerequisites, deduplicate
  jq instructions, add "When to change" column for env vars, fold
  settings.json and Hook config into <details>
- Add CONTRIBUTING.md with dev setup, PR workflow, commit conventions
- Add .github/ISSUE_TEMPLATE/ (bug report, feature request, good first issue)
- EN and ZH README mirrored (335 lines each, 13 sections)
2026-03-10 21:10:50 +08:00
li aada7260fc fix: skills namespace isolation — install to skills/ccg/ v1.7.75
- Install skills to ~/.claude/skills/ccg/ instead of ~/.claude/skills/
- Uninstall only removes skills/ccg/, preserving user's own skills
- Auto-migrate old v1.7.73-74 layout (tools/orchestration at root)
- Add 3 tests: namespace, uninstall isolation, migration (134 total)
2026-03-10 12:27:30 +08:00
li ebc132bc2e docs: add spec template guardrail changes to v1.7.74 changelog
- USER GUIDANCE RULE in spec-research/plan/impl templates
- TASKS FORMAT RULE in spec-plan/impl templates
- Internal /opsx:* calls marked with failure fallback to /ccg:spec-*
2026-03-09 17:06:17 +08:00
li 96c4debe14 fix: Gemini CLI .env isolation + cross-compile v1.7.74
- Set cmd.Dir=$HOME for Gemini backend to prevent project .env from
  overriding global API keys (gemini-cli#2493)
- Pass project directory via --include-directories flag instead
- Fix pre-existing Codex test env var name (CODEX_REQUIRE_APPROVAL)
- Cross-compile 6 platform binaries with -s -w strip flags
2026-03-09 17:02:43 +08:00
li c7e758a503 chore: bump version to 1.7.73
feat: /ccg:codex-exec command - Codex full execution with multi-model review
feat: Skills system - 6 native skills (quality gates + multi-agent orchestration)
feat: context7 MCP auto-install (free library docs, no API key)
feat: syncMcpToCodex() - mirror CCG MCP servers to ~/.codex/config.toml
fix: --skip-mcp now correctly guards context7 + Codex sync
fix: skills install/uninstall path consistency
fix: skills template variable replacement after fs.copy()
fix: MCP sync passes through all fields (not just command/args/env)
fix: installedSkills count excludes root SKILL.md
fix: failure feedback for context7 and Codex sync
2026-03-09 15:06:58 +08:00
li b6ce03effb chore: bump version to 1.7.72 2026-03-09 12:24:07 +08:00
li 336cb34af4 chore: bump version to 1.7.71 2026-03-09 01:44:57 +08:00
li 1fe8795fdb chore: v1.7.70 - menu UI overhaul + MCP defaults + repo cleanup
- Menu: ASCII Art "CCG" logo, double-line border, numbered shortcuts, CJK-aware alignment
- MCP: ace-tool as default (search_context works, enhance_prompt unavailable), proxy: acemcp.heroman.wtf
- Cleanup: remove 11 temp/cache files (1.md, verify-*.sh, .magi/, etc.)
- .gitignore: add .magi/, verify-*.sh, *_FIX.md, *_REFERENCE.md
2026-03-09 01:18:05 +08:00
li 00f0a74940 feat: i18n + codeagent-wrapper hook auto-authorization (v1.7.69)
- Add language selection on first install (zh-CN / English)
- Full i18n for init.ts, menu.ts, update.ts, cli-setup.ts
- Expand i18n/index.ts to 800+ lines with complete zh-CN/en translations
- Auto-install codeagent-wrapper PreToolUse hook in settings.json
- Detect jq availability and show install instructions if missing
- Rewrite README.md in English, move Chinese to README.zh-CN.md
- Add FAQ section with hook configuration guide
- Bump version to 1.7.69
2026-03-09 00:56:42 +08:00
li ae5b9dfeaf fix: update 命令全局安装死循环 + 测试覆盖率 38→130
修复:
- npm 全局安装用户本地工作流版本过旧时,update 错误推荐
  `npm install -g`(包已最新),导致死循环。修正 performUpdate
  的 isNewVersion 参数仅依赖 hasUpdate。

测试 (+92):
- version.test.ts: compareVersions 全场景 + 回归用例
- config.test.ts: createDefaultConfig/Routing 纯函数
- platform.test.ts: 平台检测、getMcpCommand、路径分隔符
- installer.test.ts: 注册表一致性、路由/liteMode 注入、
  模板变量完整性、contextweaver E2E、卸载 E2E、
  二进制安装、prompts 安装
2026-03-09 00:17:47 +08:00
li 6d1f742b2f chore: bump version to 1.7.67 2026-03-07 14:00:59 +08:00
li 7b3ba20282 fix: spec-research 补全多模型并行调用模板
spec-research.md Step 4 缺少 run_in_background: true 指令和完整的
Bash 并行调用示例,导致 Codex/Gemini 串行执行而非并行。
补全为与 spec-plan/spec-impl 一致的并行调用格式。
2026-03-06 21:37:59 +08:00
li ce30ba01db chore: bump version to 1.7.65
包含 PR #68 的 MCP skip 模式修复 + 测试框架
2026-03-01 23:48:40 +08:00
风少1227 565d55af3f Merge pull request #68 from ymdvsymd/claude/fix-mcp-skip-injection-01HvwiUv489c9WeoyhBB9yTq
fix: handle MCP 'skip' provider to prevent invalid tool name injection
2026-03-01 23:43:24 +08:00
li bfb156c7c1 chore: v1.7.64 - 保持 CCG 封装纯粹性
移除 spec-* 模板中的 /opsx:xxx 引用,用户只需使用 /ccg:spec-* 命令即可
2026-03-01 20:38:52 +08:00
li 734b7996df feat: v1.7.63 - 适配 OpenSpec 1.2
更新 spec-* 系列命令支持新版 OPSX 工作流:
- spec-init: 新增 Profile 系统 (core/custom) + AI 工具自动检测
- spec-research: 新增 /opsx:propose 一步到位选项
- spec-plan: 新增 /opsx:ff 快进模式提示
- spec-impl: 新增 /opsx:verify 验证步骤
- spec-review: 更新引用 (移除过时的 AGENTS.md)
2026-03-01 20:21:57 +08:00
Claude 9328ac6da2 test: add installWorkflows E2E tests; fix hardcoded MCP ref in team-plan.md
Add E2E integration tests that call installWorkflows() with
mcpProvider='skip' and 'ace-tool', then verify all generated command
and agent files for correct MCP tool handling.

The E2E tests uncovered a hardcoded `mcp__ace-tool__search_context`
in team-plan.md (line 19) that was not using the {{MCP_SEARCH_TOOL}}
template variable, causing it to survive template processing in skip
mode. Fixed by replacing with the proper template variable.

39 tests now pass (29 unit + 10 E2E).

https://claude.ai/code/session_01HvwiUv489c9WeoyhBB9yTq
2026-02-28 15:53:53 +00:00
Claude 68347e4a82 fix: handle MCP 'skip' provider in processTemplate to prevent invalid tool injection
When users select 'skip' (no MCP) during installation, the
injectConfigVariables function previously fell through to the else
branch, injecting non-existent `mcp__ace-tool__search_context` into
all 14 templates and 2 agent definitions.

This adds a dedicated 'skip' branch with a 4-stage replacement
strategy:
1. Remove MCP tool from agent frontmatter tools declarations
2. Replace code blocks containing MCP invocations with Glob+Grep
   fallback guidance
3. Replace inline backtick references with `Glob + Grep`(MCP 未配置)
4. Safety net for any remaining bare references

Also introduces vitest and adds 29 test cases covering skip,
contextweaver, ace-tool providers, plus integration tests against
all real templates.

https://claude.ai/code/session_01HvwiUv489c9WeoyhBB9yTq
2026-02-28 15:28:48 +00:00
li c0a4c820f9 chore: bump version to 1.7.62
升级 Gemini 模型:gemini-3-pro-preview → gemini-3.1-pro-preview (PR #65 by @23q3)
2026-02-27 14:33:08 +08:00
风少1227 e8cbee07ae Merge pull request #65 from 23q3/main
chore: 将gemini指定模型从3升级到3.1
2026-02-27 14:05:37 +08:00
23q3 5e1f719902 chore: 将gemini指定模型从3升级到3.1 2026-02-27 01:22:37 +08:00
li 3c31cb1512 Revert "docs: 更新 POST_DRAFT,二层折叠结构 + Agent Teams 内容"
This reverts commit 8185dd8a25fae1455df96fc2aa589dbf27c0ebd8.
2026-02-10 04:52:56 +08:00
li 01e548cca1 docs: 更新 POST_DRAFT,二层折叠结构 + Agent Teams 内容 2026-02-10 04:51:38 +08:00
li 7f58785c7b feat: v1.7.61 - Agent Teams 并行实施系列(team-research/team-plan/team-exec/team-review) 2026-02-10 04:49:38 +08:00