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