ccjk 14.2.2 → 15.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +75 -338
- package/dist/cli.js +89 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/detect.js +15 -0
- package/dist/commands/detect.js.map +1 -0
- package/dist/commands/doctor.js +68 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/git-install.js +50 -0
- package/dist/commands/git-install.js.map +1 -0
- package/dist/commands/init.js +165 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.js +66 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/menu.js +42 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/profile.js +138 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/core/detect.js +24 -0
- package/dist/core/detect.js.map +1 -0
- package/dist/core/lint.js +49 -0
- package/dist/core/lint.js.map +1 -0
- package/dist/core/mcp.js +41 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/paths.js +9 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/profiles.js +104 -0
- package/dist/core/profiles.js.map +1 -0
- package/dist/core/providers.js +53 -0
- package/dist/core/providers.js.map +1 -0
- package/dist/core/settings.js +31 -0
- package/dist/core/settings.js.map +1 -0
- package/dist/core/slash-templates.js +56 -0
- package/dist/core/slash-templates.js.map +1 -0
- package/dist/core/tools.js +27 -0
- package/dist/core/tools.js.map +1 -0
- package/package.json +43 -164
- package/README.HONEST.md +0 -176
- package/README.en.md +0 -67
- package/README.ja.md +0 -67
- package/README.ko.md +0 -67
- package/README.zh-CN.md +0 -86
- package/bin/ccjk.mjs +0 -5
- package/bin/ccjk.ts +0 -222
- package/dist/chunks/agent-teams.mjs +0 -145
- package/dist/chunks/agent.mjs +0 -1439
- package/dist/chunks/agents.mjs +0 -3783
- package/dist/chunks/api-cli.mjs +0 -135
- package/dist/chunks/api-config-selector.mjs +0 -159
- package/dist/chunks/api-providers.mjs +0 -144
- package/dist/chunks/api.mjs +0 -115
- package/dist/chunks/auto-bootstrap.mjs +0 -358
- package/dist/chunks/auto-fixer.mjs +0 -95
- package/dist/chunks/auto-updater.mjs +0 -507
- package/dist/chunks/banner.mjs +0 -173
- package/dist/chunks/bash.mjs +0 -187
- package/dist/chunks/boost.mjs +0 -474
- package/dist/chunks/brain-config.mjs +0 -75
- package/dist/chunks/brain-status.mjs +0 -89
- package/dist/chunks/ccjk-agents.mjs +0 -416
- package/dist/chunks/ccjk-all.mjs +0 -1046
- package/dist/chunks/ccjk-config.mjs +0 -445
- package/dist/chunks/ccjk-hooks.mjs +0 -1074
- package/dist/chunks/ccjk-mcp.mjs +0 -763
- package/dist/chunks/ccjk-setup.mjs +0 -765
- package/dist/chunks/ccjk-skills.mjs +0 -518
- package/dist/chunks/ccr.mjs +0 -109
- package/dist/chunks/ccu.mjs +0 -40
- package/dist/chunks/check-updates.mjs +0 -117
- package/dist/chunks/claude-code-incremental-manager.mjs +0 -761
- package/dist/chunks/claude-config.mjs +0 -606
- package/dist/chunks/claude-config2.mjs +0 -62
- package/dist/chunks/claude-wrapper.mjs +0 -85
- package/dist/chunks/clavue-config.mjs +0 -1454
- package/dist/chunks/cleanup-migration.mjs +0 -20
- package/dist/chunks/cli-hook.mjs +0 -4096
- package/dist/chunks/cloud-sync.mjs +0 -29
- package/dist/chunks/code-type-resolver.mjs +0 -880
- package/dist/chunks/codex-config-switch.mjs +0 -452
- package/dist/chunks/codex-provider-manager.mjs +0 -238
- package/dist/chunks/codex-uninstaller.mjs +0 -404
- package/dist/chunks/codex.mjs +0 -2141
- package/dist/chunks/commands.mjs +0 -108
- package/dist/chunks/commands2.mjs +0 -421
- package/dist/chunks/commit.mjs +0 -140
- package/dist/chunks/completion.mjs +0 -517
- package/dist/chunks/config-consolidator.mjs +0 -172
- package/dist/chunks/config-switch.mjs +0 -334
- package/dist/chunks/config.mjs +0 -558
- package/dist/chunks/config2.mjs +0 -484
- package/dist/chunks/config3.mjs +0 -486
- package/dist/chunks/constants.mjs +0 -323
- package/dist/chunks/context-opt.mjs +0 -444
- package/dist/chunks/context.mjs +0 -974
- package/dist/chunks/dashboard.mjs +0 -481
- package/dist/chunks/doctor.mjs +0 -1301
- package/dist/chunks/eval.mjs +0 -502
- package/dist/chunks/evolution.mjs +0 -322
- package/dist/chunks/features.mjs +0 -715
- package/dist/chunks/fish.mjs +0 -181
- package/dist/chunks/fs-operations.mjs +0 -180
- package/dist/chunks/health-alerts.mjs +0 -830
- package/dist/chunks/help.mjs +0 -341
- package/dist/chunks/hook-installer.mjs +0 -48
- package/dist/chunks/impact.mjs +0 -651
- package/dist/chunks/index.mjs +0 -23
- package/dist/chunks/index10.mjs +0 -19
- package/dist/chunks/index11.mjs +0 -1171
- package/dist/chunks/index12.mjs +0 -218
- package/dist/chunks/index13.mjs +0 -679
- package/dist/chunks/index14.mjs +0 -1009
- package/dist/chunks/index15.mjs +0 -194
- package/dist/chunks/index2.mjs +0 -7637
- package/dist/chunks/index3.mjs +0 -171
- package/dist/chunks/index4.mjs +0 -26
- package/dist/chunks/index5.mjs +0 -19
- package/dist/chunks/index6.mjs +0 -19092
- package/dist/chunks/index7.mjs +0 -616
- package/dist/chunks/index8.mjs +0 -1602
- package/dist/chunks/index9.mjs +0 -5384
- package/dist/chunks/init.mjs +0 -1911
- package/dist/chunks/installer.mjs +0 -757
- package/dist/chunks/installer2.mjs +0 -103
- package/dist/chunks/interview.mjs +0 -2927
- package/dist/chunks/json-config.mjs +0 -60
- package/dist/chunks/linux.mjs +0 -3863
- package/dist/chunks/macos.mjs +0 -69
- package/dist/chunks/main.mjs +0 -635
- package/dist/chunks/manager.mjs +0 -1048
- package/dist/chunks/marketplace.mjs +0 -265
- package/dist/chunks/mcp-cli.mjs +0 -205
- package/dist/chunks/mcp-performance.mjs +0 -187
- package/dist/chunks/mcp.mjs +0 -667
- package/dist/chunks/memory-check.mjs +0 -2973
- package/dist/chunks/memory-paths.mjs +0 -259
- package/dist/chunks/memory-sync.mjs +0 -209
- package/dist/chunks/memory.mjs +0 -354
- package/dist/chunks/metrics-display.mjs +0 -153
- package/dist/chunks/monitor.mjs +0 -1856
- package/dist/chunks/notification.mjs +0 -1864
- package/dist/chunks/onboarding.mjs +0 -386
- package/dist/chunks/package.mjs +0 -3
- package/dist/chunks/paradigm.mjs +0 -74
- package/dist/chunks/permission-manager.mjs +0 -250
- package/dist/chunks/permissions.mjs +0 -265
- package/dist/chunks/persistence-manager.mjs +0 -801
- package/dist/chunks/persistence.mjs +0 -707
- package/dist/chunks/platform.mjs +0 -395
- package/dist/chunks/plugin.mjs +0 -1936
- package/dist/chunks/powershell.mjs +0 -213
- package/dist/chunks/prompts.mjs +0 -244
- package/dist/chunks/providers.mjs +0 -263
- package/dist/chunks/quick-actions.mjs +0 -335
- package/dist/chunks/quick-provider.mjs +0 -755
- package/dist/chunks/quick-setup.mjs +0 -421
- package/dist/chunks/remote.mjs +0 -497
- package/dist/chunks/research.mjs +0 -1904
- package/dist/chunks/rollback.mjs +0 -38
- package/dist/chunks/session-manager.mjs +0 -1371
- package/dist/chunks/session.mjs +0 -878
- package/dist/chunks/sessions.mjs +0 -106
- package/dist/chunks/silent-updater.mjs +0 -396
- package/dist/chunks/simple-config.mjs +0 -122
- package/dist/chunks/skill.mjs +0 -117
- package/dist/chunks/skill2.mjs +0 -9052
- package/dist/chunks/skills-sync.mjs +0 -1343
- package/dist/chunks/skills.mjs +0 -577
- package/dist/chunks/slash-commands.mjs +0 -208
- package/dist/chunks/smart-guide.mjs +0 -247
- package/dist/chunks/snapshot.mjs +0 -58
- package/dist/chunks/startup.mjs +0 -487
- package/dist/chunks/stats.mjs +0 -191
- package/dist/chunks/status.mjs +0 -471
- package/dist/chunks/team.mjs +0 -63
- package/dist/chunks/thinking.mjs +0 -626
- package/dist/chunks/trace.mjs +0 -57
- package/dist/chunks/uninstall.mjs +0 -852
- package/dist/chunks/update.mjs +0 -174
- package/dist/chunks/upgrade-manager.mjs +0 -204
- package/dist/chunks/upgrade.mjs +0 -133
- package/dist/chunks/version-checker.mjs +0 -891
- package/dist/chunks/vim.mjs +0 -903
- package/dist/chunks/windows.mjs +0 -14
- package/dist/chunks/workflows.mjs +0 -633
- package/dist/chunks/wsl.mjs +0 -129
- package/dist/chunks/zero-config.mjs +0 -871
- package/dist/chunks/zsh.mjs +0 -182
- package/dist/cli.d.mts +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.mjs +0 -2684
- package/dist/i18n/locales/en/agent-teams.json +0 -18
- package/dist/i18n/locales/en/agentBrowser.json +0 -80
- package/dist/i18n/locales/en/agents.json +0 -135
- package/dist/i18n/locales/en/api.json +0 -63
- package/dist/i18n/locales/en/ccjk-agents.json +0 -33
- package/dist/i18n/locales/en/ccjk-all.json +0 -23
- package/dist/i18n/locales/en/ccjk-skills.json +0 -22
- package/dist/i18n/locales/en/ccjk.json +0 -276
- package/dist/i18n/locales/en/ccr.json +0 -65
- package/dist/i18n/locales/en/claude-md.json +0 -73
- package/dist/i18n/locales/en/cli.json +0 -148
- package/dist/i18n/locales/en/cloud-setup.json +0 -31
- package/dist/i18n/locales/en/cloud-sync.json +0 -147
- package/dist/i18n/locales/en/cloud.json +0 -40
- package/dist/i18n/locales/en/cloudPlugins.json +0 -118
- package/dist/i18n/locales/en/codex.json +0 -184
- package/dist/i18n/locales/en/cometix.json +0 -29
- package/dist/i18n/locales/en/common.json +0 -68
- package/dist/i18n/locales/en/config.json +0 -108
- package/dist/i18n/locales/en/configuration.json +0 -236
- package/dist/i18n/locales/en/context.json +0 -85
- package/dist/i18n/locales/en/dashboard.json +0 -78
- package/dist/i18n/locales/en/errors.json +0 -26
- package/dist/i18n/locales/en/evolution.json +0 -54
- package/dist/i18n/locales/en/hooks.json +0 -74
- package/dist/i18n/locales/en/hooksSync.json +0 -133
- package/dist/i18n/locales/en/installation.json +0 -83
- package/dist/i18n/locales/en/interview.json +0 -104
- package/dist/i18n/locales/en/language.json +0 -19
- package/dist/i18n/locales/en/lsp.json +0 -78
- package/dist/i18n/locales/en/marketplace.json +0 -116
- package/dist/i18n/locales/en/mcp.json +0 -180
- package/dist/i18n/locales/en/memory.json +0 -23
- package/dist/i18n/locales/en/menu.json +0 -299
- package/dist/i18n/locales/en/multi-config.json +0 -79
- package/dist/i18n/locales/en/notification.json +0 -307
- package/dist/i18n/locales/en/permissions.json +0 -95
- package/dist/i18n/locales/en/persistence.json +0 -127
- package/dist/i18n/locales/en/plugins.json +0 -146
- package/dist/i18n/locales/en/quick-actions.json +0 -78
- package/dist/i18n/locales/en/registry.json +0 -54
- package/dist/i18n/locales/en/remote.json +0 -93
- package/dist/i18n/locales/en/sandbox.json +0 -44
- package/dist/i18n/locales/en/setup.json +0 -44
- package/dist/i18n/locales/en/shencha.json +0 -14
- package/dist/i18n/locales/en/skills.json +0 -100
- package/dist/i18n/locales/en/skillsSync.json +0 -74
- package/dist/i18n/locales/en/smartGuide.json +0 -49
- package/dist/i18n/locales/en/stats.json +0 -20
- package/dist/i18n/locales/en/subagent.json +0 -69
- package/dist/i18n/locales/en/superpowers.json +0 -117
- package/dist/i18n/locales/en/team.json +0 -7
- package/dist/i18n/locales/en/thinking.json +0 -65
- package/dist/i18n/locales/en/tools.json +0 -42
- package/dist/i18n/locales/en/uninstall.json +0 -56
- package/dist/i18n/locales/en/updater.json +0 -29
- package/dist/i18n/locales/en/vim.json +0 -169
- package/dist/i18n/locales/en/workflow.json +0 -55
- package/dist/i18n/locales/en/workspace.json +0 -108
- package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
- package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -80
- package/dist/i18n/locales/zh-CN/agents.json +0 -135
- package/dist/i18n/locales/zh-CN/api.json +0 -63
- package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
- package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
- package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
- package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
- package/dist/i18n/locales/zh-CN/ccr.json +0 -65
- package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
- package/dist/i18n/locales/zh-CN/cli.json +0 -148
- package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
- package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
- package/dist/i18n/locales/zh-CN/cloud.json +0 -40
- package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
- package/dist/i18n/locales/zh-CN/codex.json +0 -184
- package/dist/i18n/locales/zh-CN/cometix.json +0 -29
- package/dist/i18n/locales/zh-CN/common.json +0 -68
- package/dist/i18n/locales/zh-CN/config.json +0 -108
- package/dist/i18n/locales/zh-CN/configuration.json +0 -234
- package/dist/i18n/locales/zh-CN/context.json +0 -85
- package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
- package/dist/i18n/locales/zh-CN/errors.json +0 -26
- package/dist/i18n/locales/zh-CN/evolution.json +0 -54
- package/dist/i18n/locales/zh-CN/hooks.json +0 -74
- package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
- package/dist/i18n/locales/zh-CN/installation.json +0 -83
- package/dist/i18n/locales/zh-CN/interview.json +0 -104
- package/dist/i18n/locales/zh-CN/language.json +0 -19
- package/dist/i18n/locales/zh-CN/lsp.json +0 -78
- package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
- package/dist/i18n/locales/zh-CN/mcp.json +0 -180
- package/dist/i18n/locales/zh-CN/memory.json +0 -23
- package/dist/i18n/locales/zh-CN/menu.json +0 -299
- package/dist/i18n/locales/zh-CN/multi-config.json +0 -79
- package/dist/i18n/locales/zh-CN/notification.json +0 -307
- package/dist/i18n/locales/zh-CN/permissions.json +0 -95
- package/dist/i18n/locales/zh-CN/persistence.json +0 -127
- package/dist/i18n/locales/zh-CN/plugins.json +0 -146
- package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
- package/dist/i18n/locales/zh-CN/registry.json +0 -54
- package/dist/i18n/locales/zh-CN/remote.json +0 -93
- package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
- package/dist/i18n/locales/zh-CN/setup.json +0 -44
- package/dist/i18n/locales/zh-CN/shencha.json +0 -14
- package/dist/i18n/locales/zh-CN/skills.json +0 -100
- package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
- package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
- package/dist/i18n/locales/zh-CN/stats.json +0 -20
- package/dist/i18n/locales/zh-CN/subagent.json +0 -69
- package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
- package/dist/i18n/locales/zh-CN/team.json +0 -7
- package/dist/i18n/locales/zh-CN/thinking.json +0 -65
- package/dist/i18n/locales/zh-CN/tools.json +0 -42
- package/dist/i18n/locales/zh-CN/uninstall.json +0 -56
- package/dist/i18n/locales/zh-CN/updater.json +0 -29
- package/dist/i18n/locales/zh-CN/vim.json +0 -169
- package/dist/i18n/locales/zh-CN/workflow.json +0 -55
- package/dist/i18n/locales/zh-CN/workspace.json +0 -108
- package/dist/index.d.mts +0 -5658
- package/dist/index.d.ts +0 -5658
- package/dist/index.mjs +0 -3732
- package/dist/shared/ccjk.5bEolFrk.mjs +0 -254
- package/dist/shared/ccjk.8oaxX4iR.mjs +0 -90
- package/dist/shared/ccjk.B2U7DsPy.mjs +0 -31
- package/dist/shared/ccjk.B2f-cwUP.mjs +0 -468
- package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
- package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
- package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
- package/dist/shared/ccjk.BLsIiTqO.mjs +0 -449
- package/dist/shared/ccjk.BXv8aYs1.mjs +0 -170
- package/dist/shared/ccjk.BnsY5WxD.mjs +0 -171
- package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
- package/dist/shared/ccjk.Bq8TqZG_.mjs +0 -189
- package/dist/shared/ccjk.BtrioX1Z.mjs +0 -25
- package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
- package/dist/shared/ccjk.BzPbSEP2.mjs +0 -115
- package/dist/shared/ccjk.C0WLUnFV.mjs +0 -293
- package/dist/shared/ccjk.C1hANZTu.mjs +0 -19
- package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
- package/dist/shared/ccjk.CNhnT6uQ.mjs +0 -636
- package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
- package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
- package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
- package/dist/shared/ccjk.CoCHVXl3.mjs +0 -3951
- package/dist/shared/ccjk.CwGZSTAK.mjs +0 -319
- package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
- package/dist/shared/ccjk.D-magaEx.mjs +0 -763
- package/dist/shared/ccjk.D0g2ABGg.mjs +0 -171
- package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
- package/dist/shared/ccjk.D75wivnp.mjs +0 -142
- package/dist/shared/ccjk.DDL-4C-k.mjs +0 -100
- package/dist/shared/ccjk.DFRPtmK_.mjs +0 -75
- package/dist/shared/ccjk.DMV3x5Sd.mjs +0 -299
- package/dist/shared/ccjk.DZ2LLOa-.mjs +0 -2195
- package/dist/shared/ccjk.DbigonEQ.mjs +0 -698
- package/dist/shared/ccjk.DcMvE7lf.mjs +0 -618
- package/dist/shared/ccjk.DeWpAShp.mjs +0 -1828
- package/dist/shared/ccjk.DhJ1kyDR.mjs +0 -30
- package/dist/shared/ccjk.DlTXS9rP.mjs +0 -224
- package/dist/shared/ccjk.DopKzo3z.mjs +0 -305
- package/dist/shared/ccjk.DsZsc4LR.mjs +0 -1280
- package/dist/shared/ccjk.DuzJZlgj.mjs +0 -418
- package/dist/shared/ccjk.Dxgd2vjc.mjs +0 -444
- package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
- package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
- package/dist/shared/ccjk.L7yC58_i.mjs +0 -225
- package/dist/shared/ccjk.MwtjAULc.mjs +0 -1447
- package/dist/shared/ccjk.OJKHVSOb.mjs +0 -2005
- package/dist/shared/ccjk.OTnevPNE.mjs +0 -225
- package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
- package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
- package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
- package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
- package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
- package/dist/shared/ccjk.i_vn-9C3.mjs +0 -317
- package/dist/shared/ccjk.lG3ccFjm.mjs +0 -885
- package/dist/shared/ccjk.wLJHO0Af.mjs +0 -244
- package/dist/shared/ccjk.y-a_1vK4.mjs +0 -5127
- package/dist/templates/agents/README.md +0 -78
- package/dist/templates/agents/fullstack-developer.json +0 -70
- package/dist/templates/agents/go-expert.json +0 -69
- package/dist/templates/agents/index.json +0 -64
- package/dist/templates/agents/python-expert.json +0 -69
- package/dist/templates/agents/react-specialist.json +0 -69
- package/dist/templates/agents/testing-automation-expert.json +0 -70
- package/dist/templates/agents/typescript-architect.json +0 -69
- package/dist/templates/claude-code/common/settings.json +0 -109
- package/dist/templates/common/error-prevention.md +0 -267
- package/dist/templates/common/karpathy-baseline.md +0 -83
- package/dist/templates/common/output-styles/zh-CN/carmack-mode.md +0 -381
- package/dist/templates/common/output-styles/zh-CN/codex-rigor-mode.md +0 -114
- package/dist/templates/common/output-styles/zh-CN/dhh-mode.md +0 -265
- package/dist/templates/common/output-styles/zh-CN/evan-you-mode.md +0 -539
- package/dist/templates/common/output-styles/zh-CN/jobs-mode.md +0 -369
- package/dist/templates/common/output-styles/zh-CN/linus-mode.md +0 -135
- package/dist/templates/common/output-styles/zh-CN/uncle-bob-mode.md +0 -221
- package/dist/templates/common/workflow/continuousDelivery/en/continuous-delivery.md +0 -628
- package/dist/templates/common/workflow/continuousDelivery/zh-CN/continuous-delivery.md +0 -628
- package/dist/templates/common/workflow/essential/en/agents/ccjk-config-agent.md +0 -187
- package/dist/templates/common/workflow/essential/en/agents/ccjk-mcp-agent.md +0 -191
- package/dist/templates/common/workflow/essential/en/agents/ccjk-skill-agent.md +0 -249
- package/dist/templates/common/workflow/essential/en/agents/ccjk-workflow-agent.md +0 -277
- package/dist/templates/common/workflow/essential/en/agents/get-current-datetime.md +0 -29
- package/dist/templates/common/workflow/essential/en/agents/init-architect.md +0 -115
- package/dist/templates/common/workflow/essential/en/agents/ui-ux-designer.md +0 -91
- package/dist/templates/common/workflow/essential/en/feat.md +0 -92
- package/dist/templates/common/workflow/essential/en/goal.md +0 -147
- package/dist/templates/common/workflow/essential/en/init-project.md +0 -53
- package/dist/templates/common/workflow/essential/zh-CN/agents/get-current-datetime.md +0 -29
- package/dist/templates/common/workflow/essential/zh-CN/agents/init-architect.md +0 -115
- package/dist/templates/common/workflow/essential/zh-CN/agents/ui-ux-designer.md +0 -91
- package/dist/templates/common/workflow/essential/zh-CN/feat.md +0 -315
- package/dist/templates/common/workflow/essential/zh-CN/goal.md +0 -146
- package/dist/templates/common/workflow/essential/zh-CN/init-project.md +0 -53
- package/dist/templates/common/workflow/git/en/git-cleanBranches.md +0 -102
- package/dist/templates/common/workflow/git/en/git-commit.md +0 -205
- package/dist/templates/common/workflow/git/en/git-rollback.md +0 -90
- package/dist/templates/common/workflow/git/en/git-worktree.md +0 -276
- package/dist/templates/common/workflow/git/zh-CN/git-cleanBranches.md +0 -102
- package/dist/templates/common/workflow/git/zh-CN/git-commit.md +0 -205
- package/dist/templates/common/workflow/git/zh-CN/git-rollback.md +0 -90
- package/dist/templates/common/workflow/git/zh-CN/git-worktree.md +0 -276
- package/dist/templates/common/workflow/interview/en/interview.md +0 -67
- package/dist/templates/common/workflow/interview/zh-CN/interview.md +0 -67
- package/dist/templates/common/workflow/linearMethod/en/linear-method.md +0 -651
- package/dist/templates/common/workflow/linearMethod/zh-CN/linear-method.md +0 -752
- package/dist/templates/common/workflow/refactoringMaster/en/refactoring-master.md +0 -516
- package/dist/templates/common/workflow/refactoringMaster/zh-CN/refactoring-master.md +0 -812
- package/dist/templates/common/workflow/sixStep/en/workflow.md +0 -83
- package/dist/templates/common/workflow/sixStep/zh-CN/workflow.md +0 -359
- package/dist/templates/common/workflow/specFirstTDD/en/spec-first-tdd.md +0 -364
- package/dist/templates/common/workflow/specFirstTDD/zh-CN/spec-first-tdd.md +0 -366
- package/dist/templates/hooks/README.md +0 -212
- package/dist/templates/hooks/git-workflow-hooks.md +0 -551
- package/dist/templates/hooks/post-test/coverage.json +0 -21
- package/dist/templates/hooks/post-test/summary.json +0 -21
- package/dist/templates/hooks/post-test-coverage.md +0 -434
- package/dist/templates/hooks/pre-commit/eslint.json +0 -22
- package/dist/templates/hooks/pre-commit/prettier.json +0 -22
- package/dist/templates/hooks/pre-commit-black.md +0 -274
- package/dist/templates/hooks/pre-commit-eslint.md +0 -153
- package/dist/templates/hooks/pre-commit-gofmt.md +0 -284
- package/dist/templates/hooks/pre-commit-prettier.md +0 -212
- package/dist/templates/hooks/pre-commit-type-check.md +0 -377
- package/dist/templates/skills/ccjk-init.md +0 -154
- package/dist/templates/skills/ccjk-mcp-setup.md +0 -205
- package/dist/templates/skills/ccjk-troubleshoot.md +0 -228
- package/dist/templates/skills/django-patterns.md +0 -1016
- package/dist/templates/skills/git-workflow.md +0 -748
- package/dist/templates/skills/go-idioms.md +0 -963
- package/dist/templates/skills/index.json +0 -132
- package/dist/templates/skills/nextjs-optimization.md +0 -694
- package/dist/templates/skills/python-pep8.md +0 -852
- package/dist/templates/skills/react-patterns.md +0 -686
- package/dist/templates/skills/rust-patterns.md +0 -1057
- package/dist/templates/skills/security-best-practices.md +0 -1413
- package/dist/templates/skills/testing-best-practices.md +0 -1315
- package/dist/templates/skills/ts-best-practices.md +0 -354
- package/templates/agents/README.md +0 -78
- package/templates/agents/fullstack-developer.json +0 -70
- package/templates/agents/go-expert.json +0 -69
- package/templates/agents/index.json +0 -64
- package/templates/agents/python-expert.json +0 -69
- package/templates/agents/react-specialist.json +0 -69
- package/templates/agents/testing-automation-expert.json +0 -70
- package/templates/agents/typescript-architect.json +0 -69
- package/templates/claude-code/common/settings.json +0 -109
- package/templates/common/error-prevention.md +0 -267
- package/templates/common/karpathy-baseline.md +0 -83
- package/templates/common/output-styles/zh-CN/carmack-mode.md +0 -381
- package/templates/common/output-styles/zh-CN/codex-rigor-mode.md +0 -114
- package/templates/common/output-styles/zh-CN/dhh-mode.md +0 -265
- package/templates/common/output-styles/zh-CN/evan-you-mode.md +0 -539
- package/templates/common/output-styles/zh-CN/jobs-mode.md +0 -369
- package/templates/common/output-styles/zh-CN/linus-mode.md +0 -135
- package/templates/common/output-styles/zh-CN/uncle-bob-mode.md +0 -221
- package/templates/common/workflow/continuousDelivery/en/continuous-delivery.md +0 -628
- package/templates/common/workflow/continuousDelivery/zh-CN/continuous-delivery.md +0 -628
- package/templates/common/workflow/essential/en/agents/ccjk-config-agent.md +0 -187
- package/templates/common/workflow/essential/en/agents/ccjk-mcp-agent.md +0 -191
- package/templates/common/workflow/essential/en/agents/ccjk-skill-agent.md +0 -249
- package/templates/common/workflow/essential/en/agents/ccjk-workflow-agent.md +0 -277
- package/templates/common/workflow/essential/en/agents/get-current-datetime.md +0 -29
- package/templates/common/workflow/essential/en/agents/init-architect.md +0 -115
- package/templates/common/workflow/essential/en/agents/ui-ux-designer.md +0 -91
- package/templates/common/workflow/essential/en/feat.md +0 -92
- package/templates/common/workflow/essential/en/goal.md +0 -147
- package/templates/common/workflow/essential/en/init-project.md +0 -53
- package/templates/common/workflow/essential/zh-CN/agents/get-current-datetime.md +0 -29
- package/templates/common/workflow/essential/zh-CN/agents/init-architect.md +0 -115
- package/templates/common/workflow/essential/zh-CN/agents/ui-ux-designer.md +0 -91
- package/templates/common/workflow/essential/zh-CN/feat.md +0 -315
- package/templates/common/workflow/essential/zh-CN/goal.md +0 -146
- package/templates/common/workflow/essential/zh-CN/init-project.md +0 -53
- package/templates/common/workflow/git/en/git-cleanBranches.md +0 -102
- package/templates/common/workflow/git/en/git-commit.md +0 -205
- package/templates/common/workflow/git/en/git-rollback.md +0 -90
- package/templates/common/workflow/git/en/git-worktree.md +0 -276
- package/templates/common/workflow/git/zh-CN/git-cleanBranches.md +0 -102
- package/templates/common/workflow/git/zh-CN/git-commit.md +0 -205
- package/templates/common/workflow/git/zh-CN/git-rollback.md +0 -90
- package/templates/common/workflow/git/zh-CN/git-worktree.md +0 -276
- package/templates/common/workflow/interview/en/interview.md +0 -67
- package/templates/common/workflow/interview/zh-CN/interview.md +0 -67
- package/templates/common/workflow/linearMethod/en/linear-method.md +0 -651
- package/templates/common/workflow/linearMethod/zh-CN/linear-method.md +0 -752
- package/templates/common/workflow/refactoringMaster/en/refactoring-master.md +0 -516
- package/templates/common/workflow/refactoringMaster/zh-CN/refactoring-master.md +0 -812
- package/templates/common/workflow/sixStep/en/workflow.md +0 -83
- package/templates/common/workflow/sixStep/zh-CN/workflow.md +0 -359
- package/templates/common/workflow/specFirstTDD/en/spec-first-tdd.md +0 -364
- package/templates/common/workflow/specFirstTDD/zh-CN/spec-first-tdd.md +0 -366
- package/templates/hooks/README.md +0 -212
- package/templates/hooks/git-workflow-hooks.md +0 -551
- package/templates/hooks/post-test/coverage.json +0 -21
- package/templates/hooks/post-test/summary.json +0 -21
- package/templates/hooks/post-test-coverage.md +0 -434
- package/templates/hooks/pre-commit/eslint.json +0 -22
- package/templates/hooks/pre-commit/prettier.json +0 -22
- package/templates/hooks/pre-commit-black.md +0 -274
- package/templates/hooks/pre-commit-eslint.md +0 -153
- package/templates/hooks/pre-commit-gofmt.md +0 -284
- package/templates/hooks/pre-commit-prettier.md +0 -212
- package/templates/hooks/pre-commit-type-check.md +0 -377
- package/templates/skills/basic.hbs +0 -72
- package/templates/skills/ccjk-init.md +0 -154
- package/templates/skills/ccjk-mcp-setup.md +0 -205
- package/templates/skills/ccjk-troubleshoot.md +0 -228
- package/templates/skills/code-refactor.hbs +0 -133
- package/templates/skills/code-review.hbs +0 -141
- package/templates/skills/django-patterns.md +0 -1016
- package/templates/skills/git-workflow.md +0 -748
- package/templates/skills/go-idioms.md +0 -963
- package/templates/skills/index.json +0 -132
- package/templates/skills/nextjs-optimization.md +0 -694
- package/templates/skills/python-pep8.md +0 -852
- package/templates/skills/react-patterns.md +0 -686
- package/templates/skills/rust-patterns.md +0 -1057
- package/templates/skills/security-best-practices.md +0 -1413
- package/templates/skills/testing-best-practices.md +0 -1315
- package/templates/skills/ts-best-practices.md +0 -354
- package/templates/skills/type-fix.hbs +0 -132
|
@@ -1,628 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Continuous Delivery Pipeline - Automated build, test, and deploy for software ready to release anytime
|
|
3
|
-
allowed-tools: Read(**), Write(**), Exec(npm run build, npm test, docker build, docker push, kubectl apply)
|
|
4
|
-
argument-hint: [--env <staging|production>] [--skip-tests] [--rollback] [--canary]
|
|
5
|
-
# examples:
|
|
6
|
-
# - /continuous-delivery # Deploy to staging
|
|
7
|
-
# - /continuous-delivery --env production # Deploy to production
|
|
8
|
-
# - /continuous-delivery --canary # Canary release
|
|
9
|
-
# - /continuous-delivery --rollback # Rollback to previous version
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Continuous Delivery Pipeline
|
|
13
|
-
|
|
14
|
-
Based on Jez Humble and David Farley's *Continuous Delivery* and modern DevOps practices for automated delivery pipeline.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Core Philosophy
|
|
19
|
-
|
|
20
|
-
**Continuous Delivery (CD)**:
|
|
21
|
-
- Code is always in a releasable state
|
|
22
|
-
- Automated build, test, and deployment process
|
|
23
|
-
- Fast, reliable, repeatable releases
|
|
24
|
-
- Reduce release risk, increase delivery frequency
|
|
25
|
-
|
|
26
|
-
**Key Principles**:
|
|
27
|
-
1. **Automate Everything**: From code commit to production deployment
|
|
28
|
-
2. **Fast Feedback**: Every commit triggers complete validation
|
|
29
|
-
3. **Small Batch Releases**: Frequent small changes reduce risk
|
|
30
|
-
4. **Environment Consistency**: Dev, test, prod configs are identical
|
|
31
|
-
5. **Observability**: Full-stack monitoring and log tracing
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Pipeline Stages
|
|
36
|
-
|
|
37
|
-
### Stage 1: Source Control
|
|
38
|
-
|
|
39
|
-
**Triggers**:
|
|
40
|
-
- Git push to main branch
|
|
41
|
-
- Pull Request merge
|
|
42
|
-
- Scheduled builds (nightly)
|
|
43
|
-
|
|
44
|
-
```yaml
|
|
45
|
-
# .github/workflows/cd-pipeline.yml
|
|
46
|
-
name: Continuous Delivery Pipeline
|
|
47
|
-
|
|
48
|
-
on:
|
|
49
|
-
push:
|
|
50
|
-
branches: [main, develop]
|
|
51
|
-
pull_request:
|
|
52
|
-
branches: [main]
|
|
53
|
-
schedule:
|
|
54
|
-
- cron: '0 2 * * *' # Daily at 2 AM
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**Checks**:
|
|
58
|
-
- ✅ Code committed to version control
|
|
59
|
-
- ✅ Commit message follows convention
|
|
60
|
-
- ✅ Branch protection rules configured
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### Stage 2: Build
|
|
65
|
-
|
|
66
|
-
**Goal**: Compile source code into deployable artifacts
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# 1. Install dependencies
|
|
70
|
-
npm ci # Use ci instead of install for consistent versions
|
|
71
|
-
|
|
72
|
-
# 2. Code checks
|
|
73
|
-
npm run lint
|
|
74
|
-
npm run type-check
|
|
75
|
-
|
|
76
|
-
# 3. Build
|
|
77
|
-
npm run build
|
|
78
|
-
|
|
79
|
-
# 4. Generate version
|
|
80
|
-
VERSION=$(git describe --tags --always)
|
|
81
|
-
echo "Building version: $VERSION"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Build Optimization**:
|
|
85
|
-
```dockerfile
|
|
86
|
-
# Dockerfile - Multi-stage build
|
|
87
|
-
FROM node:20-alpine AS builder
|
|
88
|
-
WORKDIR /app
|
|
89
|
-
COPY package*.json ./
|
|
90
|
-
RUN npm ci --only=production
|
|
91
|
-
COPY . .
|
|
92
|
-
RUN npm run build
|
|
93
|
-
|
|
94
|
-
FROM node:20-alpine AS runtime
|
|
95
|
-
WORKDIR /app
|
|
96
|
-
COPY --from=builder /app/dist ./dist
|
|
97
|
-
COPY --from=builder /app/node_modules ./node_modules
|
|
98
|
-
EXPOSE 3000
|
|
99
|
-
CMD ["node", "dist/index.js"]
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Checks**:
|
|
103
|
-
- ✅ Build succeeds without errors
|
|
104
|
-
- ✅ Artifact size reasonable (< 500MB)
|
|
105
|
-
- ✅ Version tagged
|
|
106
|
-
- ✅ Build time < 10 minutes
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
### Stage 3: Test
|
|
111
|
-
|
|
112
|
-
**Goal**: Automated validation of code quality and functionality
|
|
113
|
-
|
|
114
|
-
#### 3.1 Unit Tests
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
npm run test:unit -- --coverage --ci
|
|
118
|
-
|
|
119
|
-
# Coverage requirements
|
|
120
|
-
# Statements : 80%
|
|
121
|
-
# Branches : 75%
|
|
122
|
-
# Functions : 80%
|
|
123
|
-
# Lines : 80%
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
#### 3.2 Integration Tests
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
# Start test database
|
|
130
|
-
docker-compose -f docker-compose.test.yml up -d
|
|
131
|
-
|
|
132
|
-
# Run integration tests
|
|
133
|
-
npm run test:integration
|
|
134
|
-
|
|
135
|
-
# Cleanup
|
|
136
|
-
docker-compose -f docker-compose.test.yml down
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
#### 3.3 E2E Tests
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
# Start application
|
|
143
|
-
npm run start:test &
|
|
144
|
-
APP_PID=$!
|
|
145
|
-
|
|
146
|
-
# Wait for app ready
|
|
147
|
-
wait-on http://localhost:3000/health
|
|
148
|
-
|
|
149
|
-
# Run E2E tests
|
|
150
|
-
npm run test:e2e
|
|
151
|
-
|
|
152
|
-
# Cleanup
|
|
153
|
-
kill $APP_PID
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
#### 3.4 Performance Tests
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# Load testing with k6
|
|
160
|
-
k6 run --vus 100 --duration 30s tests/load/api-test.js
|
|
161
|
-
|
|
162
|
-
# Performance benchmarks
|
|
163
|
-
# - P95 latency < 200ms
|
|
164
|
-
# - Throughput > 1000 req/s
|
|
165
|
-
# - Error rate < 0.1%
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
#### 3.5 Security Scan
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# Dependency vulnerability scan
|
|
172
|
-
npm audit --audit-level=moderate
|
|
173
|
-
|
|
174
|
-
# Container image scan
|
|
175
|
-
trivy image myapp:$VERSION
|
|
176
|
-
|
|
177
|
-
# SAST static analysis
|
|
178
|
-
sonar-scanner
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**Checks**:
|
|
182
|
-
- ✅ All tests pass
|
|
183
|
-
- ✅ Coverage meets threshold
|
|
184
|
-
- ✅ No high-severity vulnerabilities
|
|
185
|
-
- ✅ Performance metrics meet requirements
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
### Stage 4: Package
|
|
190
|
-
|
|
191
|
-
**Goal**: Create immutable deployment artifacts
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
# 1. Build Docker image
|
|
195
|
-
docker build -t myapp:$VERSION .
|
|
196
|
-
|
|
197
|
-
# 2. Tag image
|
|
198
|
-
docker tag myapp:$VERSION registry.example.com/myapp:$VERSION
|
|
199
|
-
docker tag myapp:$VERSION registry.example.com/myapp:latest
|
|
200
|
-
|
|
201
|
-
# 3. Push to registry
|
|
202
|
-
docker push registry.example.com/myapp:$VERSION
|
|
203
|
-
docker push registry.example.com/myapp:latest
|
|
204
|
-
|
|
205
|
-
# 4. Generate SBOM (Software Bill of Materials)
|
|
206
|
-
syft registry.example.com/myapp:$VERSION -o spdx-json > sbom.json
|
|
207
|
-
|
|
208
|
-
# 5. Sign image
|
|
209
|
-
cosign sign registry.example.com/myapp:$VERSION
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Artifact Metadata**:
|
|
213
|
-
```json
|
|
214
|
-
{
|
|
215
|
-
"artifact": {
|
|
216
|
-
"name": "myapp",
|
|
217
|
-
"version": "v1.2.3",
|
|
218
|
-
"commit": "abc123",
|
|
219
|
-
"buildTime": "2025-02-04T10:30:00Z",
|
|
220
|
-
"registry": "registry.example.com",
|
|
221
|
-
"digest": "sha256:...",
|
|
222
|
-
"size": "245MB"
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**Checks**:
|
|
228
|
-
- ✅ Image built successfully
|
|
229
|
-
- ✅ Image pushed to registry
|
|
230
|
-
- ✅ Image signed and verified
|
|
231
|
-
- ✅ SBOM generated
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
### Stage 5: Deploy
|
|
236
|
-
|
|
237
|
-
**Goal**: Deploy artifacts to target environment
|
|
238
|
-
|
|
239
|
-
#### 5.1 Staging Deployment
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
# 1. Update Kubernetes config
|
|
243
|
-
kubectl set image deployment/myapp \
|
|
244
|
-
myapp=registry.example.com/myapp:$VERSION \
|
|
245
|
-
-n staging
|
|
246
|
-
|
|
247
|
-
# 2. Wait for rollout
|
|
248
|
-
kubectl rollout status deployment/myapp -n staging
|
|
249
|
-
|
|
250
|
-
# 3. Health check
|
|
251
|
-
kubectl get pods -n staging -l app=myapp
|
|
252
|
-
curl https://staging.example.com/health
|
|
253
|
-
|
|
254
|
-
# 4. Smoke tests
|
|
255
|
-
npm run test:smoke -- --env staging
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
#### 5.2 Production Deployment
|
|
259
|
-
|
|
260
|
-
**Blue-Green Deployment**:
|
|
261
|
-
|
|
262
|
-
```bash
|
|
263
|
-
# 1. Deploy new version to Green environment
|
|
264
|
-
kubectl apply -f k8s/deployment-green.yml
|
|
265
|
-
|
|
266
|
-
# 2. Wait for Green ready
|
|
267
|
-
kubectl wait --for=condition=available deployment/myapp-green
|
|
268
|
-
|
|
269
|
-
# 3. Run validation tests
|
|
270
|
-
npm run test:smoke -- --env green
|
|
271
|
-
|
|
272
|
-
# 4. Switch traffic to Green
|
|
273
|
-
kubectl patch service myapp -p '{"spec":{"selector":{"version":"green"}}}'
|
|
274
|
-
|
|
275
|
-
# 5. Monitor for 5 minutes
|
|
276
|
-
sleep 300
|
|
277
|
-
|
|
278
|
-
# 6. If healthy, delete Blue
|
|
279
|
-
kubectl delete deployment myapp-blue
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
**Canary Deployment**:
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
# 1. Deploy canary version (5% traffic)
|
|
286
|
-
kubectl apply -f k8s/canary.yml
|
|
287
|
-
|
|
288
|
-
# 2. Monitor key metrics
|
|
289
|
-
while true; do
|
|
290
|
-
ERROR_RATE=$(prometheus-query 'rate(http_errors[5m])')
|
|
291
|
-
if [ $ERROR_RATE -gt 0.01 ]; then
|
|
292
|
-
echo "Error rate too high, rolling back"
|
|
293
|
-
kubectl delete -f k8s/canary.yml
|
|
294
|
-
exit 1
|
|
295
|
-
fi
|
|
296
|
-
sleep 60
|
|
297
|
-
done
|
|
298
|
-
|
|
299
|
-
# 3. Gradually increase traffic: 5% -> 25% -> 50% -> 100%
|
|
300
|
-
kubectl patch deployment myapp-canary -p '{"spec":{"replicas":5}}'
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
**Checks**:
|
|
304
|
-
- ✅ Deployment successful
|
|
305
|
-
- ✅ Health checks pass
|
|
306
|
-
- ✅ Smoke tests pass
|
|
307
|
-
- ✅ Key metrics normal
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
### Stage 6: Monitor
|
|
312
|
-
|
|
313
|
-
**Goal**: Real-time monitoring of application health and business metrics
|
|
314
|
-
|
|
315
|
-
#### 6.1 Infrastructure Monitoring
|
|
316
|
-
|
|
317
|
-
```yaml
|
|
318
|
-
# Prometheus metrics
|
|
319
|
-
metrics:
|
|
320
|
-
- name: http_requests_total
|
|
321
|
-
type: counter
|
|
322
|
-
help: Total HTTP requests
|
|
323
|
-
|
|
324
|
-
- name: http_request_duration_seconds
|
|
325
|
-
type: histogram
|
|
326
|
-
help: HTTP request latency
|
|
327
|
-
|
|
328
|
-
- name: app_errors_total
|
|
329
|
-
type: counter
|
|
330
|
-
help: Total application errors
|
|
331
|
-
|
|
332
|
-
- name: db_connections_active
|
|
333
|
-
type: gauge
|
|
334
|
-
help: Active database connections
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
#### 6.2 Log Aggregation
|
|
338
|
-
|
|
339
|
-
```json
|
|
340
|
-
// Structured logging
|
|
341
|
-
{
|
|
342
|
-
"timestamp": "2025-02-04T10:30:00Z",
|
|
343
|
-
"level": "info",
|
|
344
|
-
"service": "myapp",
|
|
345
|
-
"version": "v1.2.3",
|
|
346
|
-
"traceId": "abc123",
|
|
347
|
-
"message": "User login successful",
|
|
348
|
-
"userId": "user-456",
|
|
349
|
-
"duration": 120
|
|
350
|
-
}
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
#### 6.3 Alert Rules
|
|
354
|
-
|
|
355
|
-
```yaml
|
|
356
|
-
# Alertmanager configuration
|
|
357
|
-
alerts:
|
|
358
|
-
- name: HighErrorRate
|
|
359
|
-
expr: rate(http_errors[5m]) > 0.05
|
|
360
|
-
severity: critical
|
|
361
|
-
message: "Error rate > 5% for 5 minutes"
|
|
362
|
-
|
|
363
|
-
- name: HighLatency
|
|
364
|
-
expr: histogram_quantile(0.95, http_request_duration_seconds) > 1
|
|
365
|
-
severity: warning
|
|
366
|
-
message: "P95 latency > 1s"
|
|
367
|
-
|
|
368
|
-
- name: LowAvailability
|
|
369
|
-
expr: up{job="myapp"} < 0.99
|
|
370
|
-
severity: critical
|
|
371
|
-
message: "Service availability < 99%"
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
#### 6.4 Business Metrics
|
|
375
|
-
|
|
376
|
-
```typescript
|
|
377
|
-
// Key business metrics
|
|
378
|
-
const businessMetrics = {
|
|
379
|
-
dailyActiveUsers: 12500,
|
|
380
|
-
conversionRate: 0.032,
|
|
381
|
-
averageOrderValue: 89.50,
|
|
382
|
-
customerSatisfaction: 4.7
|
|
383
|
-
}
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
### Stage 7: Rollback
|
|
389
|
-
|
|
390
|
-
**Goal**: Quickly rollback to previous stable version
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
# 1. View deployment history
|
|
394
|
-
kubectl rollout history deployment/myapp
|
|
395
|
-
|
|
396
|
-
# 2. Rollback to previous version
|
|
397
|
-
kubectl rollout undo deployment/myapp
|
|
398
|
-
|
|
399
|
-
# 3. Rollback to specific version
|
|
400
|
-
kubectl rollout undo deployment/myapp --to-revision=3
|
|
401
|
-
|
|
402
|
-
# 4. Verify rollback
|
|
403
|
-
kubectl rollout status deployment/myapp
|
|
404
|
-
curl https://api.example.com/health
|
|
405
|
-
|
|
406
|
-
# 5. Notify team
|
|
407
|
-
slack-notify "🔄 Rolled back myapp to v1.2.2 due to high error rate"
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
**Auto-rollback Conditions**:
|
|
411
|
-
- Error rate > 5%
|
|
412
|
-
- P95 latency > 2 seconds
|
|
413
|
-
- Health check failures
|
|
414
|
-
- Critical business metric anomalies
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
## Deployment Strategies
|
|
419
|
-
|
|
420
|
-
### 1. Rolling Update
|
|
421
|
-
|
|
422
|
-
```yaml
|
|
423
|
-
apiVersion: apps/v1
|
|
424
|
-
kind: Deployment
|
|
425
|
-
metadata:
|
|
426
|
-
name: myapp
|
|
427
|
-
spec:
|
|
428
|
-
replicas: 10
|
|
429
|
-
strategy:
|
|
430
|
-
type: RollingUpdate
|
|
431
|
-
rollingUpdate:
|
|
432
|
-
maxSurge: 2 # Max 2 extra pods
|
|
433
|
-
maxUnavailable: 1 # Max 1 pod unavailable
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
**Pros**:
|
|
437
|
-
- Zero downtime
|
|
438
|
-
- High resource efficiency
|
|
439
|
-
- Simple implementation
|
|
440
|
-
|
|
441
|
-
**Cons**:
|
|
442
|
-
- Mixed versions coexist
|
|
443
|
-
- Slower rollback
|
|
444
|
-
|
|
445
|
-
---
|
|
446
|
-
|
|
447
|
-
### 2. Blue-Green Deployment
|
|
448
|
-
|
|
449
|
-
```
|
|
450
|
-
[Blue v1.0] ← 100% traffic
|
|
451
|
-
[Green v1.1] ← 0% traffic
|
|
452
|
-
|
|
453
|
-
After switch:
|
|
454
|
-
[Blue v1.0] ← 0% traffic (kept for rollback)
|
|
455
|
-
[Green v1.1] ← 100% traffic
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
**Pros**:
|
|
459
|
-
- Instant switch
|
|
460
|
-
- Fast rollback
|
|
461
|
-
- Thorough testing
|
|
462
|
-
|
|
463
|
-
**Cons**:
|
|
464
|
-
- Requires double resources
|
|
465
|
-
- Complex database migrations
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
### 3. Canary Release
|
|
470
|
-
|
|
471
|
-
```
|
|
472
|
-
Phase 1: [v1.0: 95%] [v1.1: 5%]
|
|
473
|
-
Phase 2: [v1.0: 75%] [v1.1: 25%]
|
|
474
|
-
Phase 3: [v1.0: 50%] [v1.1: 50%]
|
|
475
|
-
Phase 4: [v1.0: 0%] [v1.1: 100%]
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
**Pros**:
|
|
479
|
-
- Progressive rollout
|
|
480
|
-
- Controlled risk
|
|
481
|
-
- Real traffic validation
|
|
482
|
-
|
|
483
|
-
**Cons**:
|
|
484
|
-
- Complex implementation
|
|
485
|
-
- Longer release time
|
|
486
|
-
|
|
487
|
-
---
|
|
488
|
-
|
|
489
|
-
## Pipeline Configuration
|
|
490
|
-
|
|
491
|
-
### Environment Configuration
|
|
492
|
-
|
|
493
|
-
```yaml
|
|
494
|
-
# config/environments.yml
|
|
495
|
-
environments:
|
|
496
|
-
development:
|
|
497
|
-
url: http://localhost:3000
|
|
498
|
-
database: dev-db
|
|
499
|
-
replicas: 1
|
|
500
|
-
|
|
501
|
-
staging:
|
|
502
|
-
url: https://staging.example.com
|
|
503
|
-
database: staging-db
|
|
504
|
-
replicas: 3
|
|
505
|
-
|
|
506
|
-
production:
|
|
507
|
-
url: https://api.example.com
|
|
508
|
-
database: prod-db
|
|
509
|
-
replicas: 10
|
|
510
|
-
autoScale:
|
|
511
|
-
min: 10
|
|
512
|
-
max: 50
|
|
513
|
-
targetCPU: 70
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
### Quality Gates
|
|
517
|
-
|
|
518
|
-
```yaml
|
|
519
|
-
# Pre-deployment requirements
|
|
520
|
-
quality-gates:
|
|
521
|
-
- name: test-coverage
|
|
522
|
-
threshold: 80
|
|
523
|
-
blocking: true
|
|
524
|
-
|
|
525
|
-
- name: code-quality
|
|
526
|
-
sonarqube:
|
|
527
|
-
bugs: 0
|
|
528
|
-
vulnerabilities: 0
|
|
529
|
-
code-smells: < 10
|
|
530
|
-
blocking: true
|
|
531
|
-
|
|
532
|
-
- name: performance
|
|
533
|
-
p95-latency: < 200ms
|
|
534
|
-
throughput: > 1000 rps
|
|
535
|
-
blocking: false
|
|
536
|
-
```
|
|
537
|
-
|
|
538
|
-
---
|
|
539
|
-
|
|
540
|
-
## Best Practices
|
|
541
|
-
|
|
542
|
-
### 1. Version Management
|
|
543
|
-
|
|
544
|
-
```bash
|
|
545
|
-
# Semantic versioning
|
|
546
|
-
MAJOR.MINOR.PATCH
|
|
547
|
-
|
|
548
|
-
# Example
|
|
549
|
-
v1.2.3
|
|
550
|
-
│ │ └─ Patch (bug fixes)
|
|
551
|
-
│ └─── Minor (new features, backward compatible)
|
|
552
|
-
└───── Major (breaking changes)
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
### 2. Configuration Management
|
|
556
|
-
|
|
557
|
-
```typescript
|
|
558
|
-
// ✅ Good: Externalized config
|
|
559
|
-
const config = {
|
|
560
|
-
database: process.env.DATABASE_URL,
|
|
561
|
-
apiKey: process.env.API_KEY,
|
|
562
|
-
logLevel: process.env.LOG_LEVEL || 'info'
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
// ❌ Bad: Hardcoded config
|
|
566
|
-
const config = {
|
|
567
|
-
database: 'postgres://localhost:5432/mydb',
|
|
568
|
-
apiKey: 'sk-1234567890'
|
|
569
|
-
}
|
|
570
|
-
```
|
|
571
|
-
|
|
572
|
-
### 3. Database Migrations
|
|
573
|
-
|
|
574
|
-
```bash
|
|
575
|
-
# Backward-compatible migration strategy
|
|
576
|
-
# Phase 1: Add new column (nullable)
|
|
577
|
-
ALTER TABLE users ADD COLUMN email_verified BOOLEAN;
|
|
578
|
-
|
|
579
|
-
# Phase 2: Deploy new code (supports both old and new columns)
|
|
580
|
-
# Phase 3: Data migration
|
|
581
|
-
UPDATE users SET email_verified = true WHERE email IS NOT NULL;
|
|
582
|
-
|
|
583
|
-
# Phase 4: Add constraint
|
|
584
|
-
ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;
|
|
585
|
-
|
|
586
|
-
# Phase 5: Drop old column (next release)
|
|
587
|
-
ALTER TABLE users DROP COLUMN old_email_field;
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
### 4. Feature Flags
|
|
591
|
-
|
|
592
|
-
```typescript
|
|
593
|
-
// Use feature flags to control new feature rollout
|
|
594
|
-
if (featureFlags.isEnabled('new-checkout-flow', user)) {
|
|
595
|
-
return newCheckoutFlow()
|
|
596
|
-
} else {
|
|
597
|
-
return legacyCheckoutFlow()
|
|
598
|
-
}
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
---
|
|
602
|
-
|
|
603
|
-
## Command Options
|
|
604
|
-
|
|
605
|
-
- `--env <staging|production>`: Specify deployment environment
|
|
606
|
-
- `--skip-tests`: Skip test phase (emergency fixes only)
|
|
607
|
-
- `--rollback`: Rollback to previous version
|
|
608
|
-
- `--canary`: Use canary release strategy
|
|
609
|
-
- `--dry-run`: Simulate deployment without executing
|
|
610
|
-
|
|
611
|
-
---
|
|
612
|
-
|
|
613
|
-
## Success Metrics
|
|
614
|
-
|
|
615
|
-
- ✅ Deployment frequency: Multiple times per day
|
|
616
|
-
- ✅ Lead time for changes: < 1 hour
|
|
617
|
-
- ✅ Change failure rate: < 15%
|
|
618
|
-
- ✅ Mean time to recovery (MTTR): < 1 hour
|
|
619
|
-
- ✅ Service availability: > 99.9%
|
|
620
|
-
|
|
621
|
-
---
|
|
622
|
-
|
|
623
|
-
## References
|
|
624
|
-
|
|
625
|
-
- Jez Humble & David Farley - *Continuous Delivery*
|
|
626
|
-
- Gene Kim - *The DevOps Handbook*
|
|
627
|
-
- Nicole Forsgren - *Accelerate*
|
|
628
|
-
- Martin Fowler - *Continuous Integration*
|