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,752 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Linear 高质量方法 - 问题验证→优先级排序→专注构建,Linear 团队的产品质量哲学
|
|
3
|
-
allowed-tools: Read(**), Write(**), Exec(npm run dev, npm test)
|
|
4
|
-
argument-hint: [--validate] [--prioritize] [--focus-mode]
|
|
5
|
-
# examples:
|
|
6
|
-
# - /linear-method # 启动 Linear 工作流
|
|
7
|
-
# - /linear-method --validate # 问题验证阶段
|
|
8
|
-
# - /linear-method --prioritize # 优先级排序
|
|
9
|
-
# - /linear-method --focus-mode # 专注构建模式
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
> **基于 Discipline Baseline**:本 workflow 在 4 条全局原则(Think / Simplicity / Surgical / Goal-driven)之上提供更具体的流程编排。当本文档与 baseline 冲突,**baseline 优先**。
|
|
13
|
-
|
|
14
|
-
# Linear Quality Method
|
|
15
|
-
|
|
16
|
-
基于 Linear 团队的产品开发哲学,通过严格的问题验证、优先级排序和专注构建,打造高质量软件产品。
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 核心理念
|
|
21
|
-
|
|
22
|
-
Linear 是一个以速度和质量著称的项目管理工具,其团队的开发方法论强调:
|
|
23
|
-
|
|
24
|
-
**1. 问题优先(Problem-First)**
|
|
25
|
-
- 先理解问题,再考虑解决方案
|
|
26
|
-
- 验证问题是否真实存在
|
|
27
|
-
- 评估问题的影响范围
|
|
28
|
-
|
|
29
|
-
**2. 质量至上(Quality Over Speed)**
|
|
30
|
-
- 宁可慢一点,也要做对
|
|
31
|
-
- 技术债务是最大的敌人
|
|
32
|
-
- 每个功能都要经过深思熟虑
|
|
33
|
-
|
|
34
|
-
**3. 专注构建(Focus on Building)**
|
|
35
|
-
- 减少会议和干扰
|
|
36
|
-
- 长时间的深度工作
|
|
37
|
-
- 一次只做一件事
|
|
38
|
-
|
|
39
|
-
**4. 用户体验(User Experience)**
|
|
40
|
-
- 每个细节都重要
|
|
41
|
-
- 性能是功能的一部分
|
|
42
|
-
- 简洁胜于复杂
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Linear Workflow
|
|
47
|
-
|
|
48
|
-
### Phase 1: Problem Validation(问题验证)
|
|
49
|
-
|
|
50
|
-
**目标**:确保我们在解决真实且重要的问题
|
|
51
|
-
|
|
52
|
-
#### 1.1 问题陈述
|
|
53
|
-
|
|
54
|
-
使用 Linear 的问题模板:
|
|
55
|
-
|
|
56
|
-
```markdown
|
|
57
|
-
## Problem Statement
|
|
58
|
-
|
|
59
|
-
### What is the problem?
|
|
60
|
-
[清晰描述问题是什么]
|
|
61
|
-
|
|
62
|
-
### Who is affected?
|
|
63
|
-
- [ ] All users
|
|
64
|
-
- [ ] Specific user segment: [describe]
|
|
65
|
-
- [ ] Internal team
|
|
66
|
-
- [ ] External partners
|
|
67
|
-
|
|
68
|
-
### How often does this occur?
|
|
69
|
-
- [ ] Every time
|
|
70
|
-
- [ ] Frequently (daily)
|
|
71
|
-
- [ ] Occasionally (weekly)
|
|
72
|
-
- [ ] Rarely (monthly)
|
|
73
|
-
|
|
74
|
-
### What is the impact?
|
|
75
|
-
- [ ] Blocker (prevents work)
|
|
76
|
-
- [ ] Major (significant friction)
|
|
77
|
-
- [ ] Minor (small annoyance)
|
|
78
|
-
- [ ] Nice to have
|
|
79
|
-
|
|
80
|
-
### Evidence
|
|
81
|
-
- User feedback: [links]
|
|
82
|
-
- Analytics data: [metrics]
|
|
83
|
-
- Support tickets: [count]
|
|
84
|
-
- Team observations: [notes]
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
#### 1.2 问题验证清单
|
|
88
|
-
|
|
89
|
-
```markdown
|
|
90
|
-
## Validation Checklist
|
|
91
|
-
|
|
92
|
-
- [ ] 问题描述清晰具体(不是解决方案)
|
|
93
|
-
- [ ] 有真实用户反馈或数据支持
|
|
94
|
-
- [ ] 影响范围已量化
|
|
95
|
-
- [ ] 不解决的后果已评估
|
|
96
|
-
- [ ] 与产品愿景一致
|
|
97
|
-
- [ ] 不是 XY 问题(用户要 X,我们误以为要 Y)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
#### 1.3 反例:伪问题
|
|
101
|
-
|
|
102
|
-
```markdown
|
|
103
|
-
❌ Bad: "我们需要添加一个新的设置页面"
|
|
104
|
-
→ 这是解决方案,不是问题
|
|
105
|
-
|
|
106
|
-
✅ Good: "用户无法自定义通知偏好,导致收到过多不相关通知,
|
|
107
|
-
每天有 50+ 用户在支持渠道抱怨此问题"
|
|
108
|
-
|
|
109
|
-
❌ Bad: "代码需要重构"
|
|
110
|
-
→ 没有说明为什么需要重构
|
|
111
|
-
|
|
112
|
-
✅ Good: "当前认证模块的复杂度导致每次添加新功能需要 3 天,
|
|
113
|
-
而竞品只需要半天,影响我们的迭代速度"
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### Phase 2: Prioritization(优先级排序)
|
|
119
|
-
|
|
120
|
-
**目标**:在有限的时间内做最重要的事
|
|
121
|
-
|
|
122
|
-
#### 2.1 RICE 评分框架
|
|
123
|
-
|
|
124
|
-
Linear 使用 RICE 框架评估优先级:
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
RICE Score = (Reach × Impact × Confidence) / Effort
|
|
128
|
-
|
|
129
|
-
Reach (触达):影响多少用户?
|
|
130
|
-
- 1000+ users = 10
|
|
131
|
-
- 100-1000 users = 5
|
|
132
|
-
- 10-100 users = 2
|
|
133
|
-
- < 10 users = 1
|
|
134
|
-
|
|
135
|
-
Impact (影响):对用户的影响有多大?
|
|
136
|
-
- Massive (3.0): 核心功能,显著改善体验
|
|
137
|
-
- High (2.0): 重要功能,明显改善体验
|
|
138
|
-
- Medium (1.0): 有用功能,适度改善体验
|
|
139
|
-
- Low (0.5): 小改进
|
|
140
|
-
- Minimal (0.25): 微小改进
|
|
141
|
-
|
|
142
|
-
Confidence (信心):我们有多确定?
|
|
143
|
-
- High (100%): 有数据支持
|
|
144
|
-
- Medium (80%): 有一些证据
|
|
145
|
-
- Low (50%): 基于假设
|
|
146
|
-
|
|
147
|
-
Effort (工作量):需要多少人月?
|
|
148
|
-
- 以人月为单位(1 人月 = 1 人工作 1 个月)
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
#### 2.2 优先级示例
|
|
152
|
-
|
|
153
|
-
```markdown
|
|
154
|
-
## Feature: 键盘快捷键
|
|
155
|
-
|
|
156
|
-
Reach: 8 (80% 的活跃用户)
|
|
157
|
-
Impact: 2.0 (High - 显著提升效率)
|
|
158
|
-
Confidence: 100% (用户强烈要求)
|
|
159
|
-
Effort: 2 人月
|
|
160
|
-
|
|
161
|
-
RICE Score = (8 × 2.0 × 1.0) / 2 = 8.0
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Feature: 深色模式
|
|
166
|
-
|
|
167
|
-
Reach: 10 (所有用户)
|
|
168
|
-
Impact: 1.0 (Medium - 改善体验)
|
|
169
|
-
Confidence: 80% (部分用户要求)
|
|
170
|
-
Effort: 3 人月
|
|
171
|
-
|
|
172
|
-
RICE Score = (10 × 1.0 × 0.8) / 3 = 2.67
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Bug: 搜索结果不准确
|
|
177
|
-
|
|
178
|
-
Reach: 9 (90% 用户使用搜索)
|
|
179
|
-
Impact: 3.0 (Massive - 核心功能损坏)
|
|
180
|
-
Confidence: 100% (有明确复现步骤)
|
|
181
|
-
Effort: 1 人月
|
|
182
|
-
|
|
183
|
-
RICE Score = (9 × 3.0 × 1.0) / 1 = 27.0 ← 最高优先级
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
#### 2.3 优先级矩阵
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
高影响 │ 🔥 立即做 │ 📅 计划做
|
|
190
|
-
│ (Quick Wins) │ (Major Projects)
|
|
191
|
-
│ │
|
|
192
|
-
──────┼────────────────┼──────────────────
|
|
193
|
-
│ │
|
|
194
|
-
低影响 │ 🤔 考虑做 │ ❌ 不做
|
|
195
|
-
│ (Fill-ins) │ (Time Sinks)
|
|
196
|
-
│ │
|
|
197
|
-
低工作量 高工作量
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
#### 2.4 说不的艺术
|
|
201
|
-
|
|
202
|
-
Linear 团队以「说不」著称:
|
|
203
|
-
|
|
204
|
-
```markdown
|
|
205
|
-
## 何时说不
|
|
206
|
-
|
|
207
|
-
❌ 功能请求来自单个用户(除非是关键客户)
|
|
208
|
-
❌ 解决方案复杂但影响小
|
|
209
|
-
❌ 与产品愿景不符
|
|
210
|
-
❌ 有更简单的替代方案
|
|
211
|
-
❌ 维护成本高于价值
|
|
212
|
-
|
|
213
|
-
## 如何说不
|
|
214
|
-
|
|
215
|
-
✅ "感谢反馈!我们理解这个需求,但目前优先级较低,
|
|
216
|
-
因为只有 2% 的用户会用到。我们会持续关注。"
|
|
217
|
-
|
|
218
|
-
✅ "这是个好想法,但实现成本很高(3 个月),
|
|
219
|
-
而我们有更高优先级的问题需要解决。"
|
|
220
|
-
|
|
221
|
-
✅ "我们考虑过这个方案,但它会增加产品复杂度,
|
|
222
|
-
与我们'保持简洁'的理念不符。"
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
### Phase 3: Spec Writing(规格编写)
|
|
228
|
-
|
|
229
|
-
**目标**:在编码前明确所有细节
|
|
230
|
-
|
|
231
|
-
#### 3.1 Linear Spec 模板
|
|
232
|
-
|
|
233
|
-
```markdown
|
|
234
|
-
# [Feature Name]
|
|
235
|
-
|
|
236
|
-
## Problem
|
|
237
|
-
[从 Phase 1 复制问题陈述]
|
|
238
|
-
|
|
239
|
-
## Goals
|
|
240
|
-
- Primary goal: [核心目标]
|
|
241
|
-
- Secondary goals: [次要目标]
|
|
242
|
-
- Non-goals: [明确不做什么]
|
|
243
|
-
|
|
244
|
-
## User Stories
|
|
245
|
-
|
|
246
|
-
As a [role], I want to [action] so that [benefit].
|
|
247
|
-
|
|
248
|
-
### Example
|
|
249
|
-
As a developer, I want to use keyboard shortcuts
|
|
250
|
-
so that I can navigate the app without using the mouse.
|
|
251
|
-
|
|
252
|
-
## Solution
|
|
253
|
-
|
|
254
|
-
### Overview
|
|
255
|
-
[高层次的解决方案描述]
|
|
256
|
-
|
|
257
|
-
### User Flow
|
|
258
|
-
1. User presses `Cmd+K`
|
|
259
|
-
2. Command palette opens
|
|
260
|
-
3. User types "create issue"
|
|
261
|
-
4. Matching commands are filtered
|
|
262
|
-
5. User presses Enter
|
|
263
|
-
6. Issue creation dialog opens
|
|
264
|
-
|
|
265
|
-
### UI/UX Design
|
|
266
|
-
[Figma 链接或截图]
|
|
267
|
-
|
|
268
|
-
### Technical Approach
|
|
269
|
-
|
|
270
|
-
#### Architecture
|
|
271
|
-
```typescript
|
|
272
|
-
// 核心接口设计
|
|
273
|
-
interface KeyboardShortcut {
|
|
274
|
-
key: string
|
|
275
|
-
modifiers: Modifier[]
|
|
276
|
-
action: () => void
|
|
277
|
-
description: string
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
class ShortcutManager {
|
|
281
|
-
register(shortcut: KeyboardShortcut): void
|
|
282
|
-
unregister(key: string): void
|
|
283
|
-
execute(event: KeyboardEvent): void
|
|
284
|
-
}
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
#### Data Model
|
|
288
|
-
[数据库 schema 或状态结构]
|
|
289
|
-
|
|
290
|
-
#### API Changes
|
|
291
|
-
[新增或修改的 API]
|
|
292
|
-
|
|
293
|
-
### Edge Cases
|
|
294
|
-
- What if user presses conflicting shortcuts?
|
|
295
|
-
- What if shortcut is already used by browser?
|
|
296
|
-
- What if user is in an input field?
|
|
297
|
-
|
|
298
|
-
### Performance Considerations
|
|
299
|
-
- Shortcut registration: O(1)
|
|
300
|
-
- Shortcut lookup: O(1) using Map
|
|
301
|
-
- No impact on initial load time
|
|
302
|
-
|
|
303
|
-
### Accessibility
|
|
304
|
-
- All shortcuts must have mouse alternatives
|
|
305
|
-
- Shortcuts must be discoverable (help menu)
|
|
306
|
-
- Support for screen readers
|
|
307
|
-
|
|
308
|
-
### Security
|
|
309
|
-
- No security implications
|
|
310
|
-
|
|
311
|
-
## Success Metrics
|
|
312
|
-
|
|
313
|
-
- 30% of users adopt keyboard shortcuts within 1 month
|
|
314
|
-
- Average task completion time reduces by 20%
|
|
315
|
-
- NPS score increases by 5 points
|
|
316
|
-
|
|
317
|
-
## Rollout Plan
|
|
318
|
-
|
|
319
|
-
### Phase 1: Internal Beta (Week 1)
|
|
320
|
-
- Deploy to team
|
|
321
|
-
- Gather feedback
|
|
322
|
-
- Fix critical bugs
|
|
323
|
-
|
|
324
|
-
### Phase 2: Public Beta (Week 2-3)
|
|
325
|
-
- Deploy to 10% of users
|
|
326
|
-
- Monitor metrics
|
|
327
|
-
- Iterate based on feedback
|
|
328
|
-
|
|
329
|
-
### Phase 3: General Availability (Week 4)
|
|
330
|
-
- Deploy to all users
|
|
331
|
-
- Announce in changelog
|
|
332
|
-
- Create help documentation
|
|
333
|
-
|
|
334
|
-
## Open Questions
|
|
335
|
-
|
|
336
|
-
- [ ] Should shortcuts be customizable?
|
|
337
|
-
- [ ] Which shortcuts should be enabled by default?
|
|
338
|
-
- [ ] How to handle conflicts with browser shortcuts?
|
|
339
|
-
|
|
340
|
-
## Timeline
|
|
341
|
-
|
|
342
|
-
- Spec review: 2 days
|
|
343
|
-
- Implementation: 1.5 weeks
|
|
344
|
-
- Testing: 2 days
|
|
345
|
-
- Beta: 1 week
|
|
346
|
-
- GA: Week 4
|
|
347
|
-
|
|
348
|
-
Total: 4 weeks
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
#### 3.2 Spec Review 清单
|
|
352
|
-
|
|
353
|
-
```markdown
|
|
354
|
-
## Review Checklist
|
|
355
|
-
|
|
356
|
-
### Clarity
|
|
357
|
-
- [ ] 问题陈述清晰
|
|
358
|
-
- [ ] 解决方案明确
|
|
359
|
-
- [ ] 所有术语都有定义
|
|
360
|
-
|
|
361
|
-
### Completeness
|
|
362
|
-
- [ ] 覆盖所有用户场景
|
|
363
|
-
- [ ] 考虑了边界情况
|
|
364
|
-
- [ ] 定义了成功指标
|
|
365
|
-
|
|
366
|
-
### Feasibility
|
|
367
|
-
- [ ] 技术方案可行
|
|
368
|
-
- [ ] 时间估算合理
|
|
369
|
-
- [ ] 资源充足
|
|
370
|
-
|
|
371
|
-
### Quality
|
|
372
|
-
- [ ] 性能影响已评估
|
|
373
|
-
- [ ] 可访问性已考虑
|
|
374
|
-
- [ ] 安全性已审查
|
|
375
|
-
|
|
376
|
-
### Alignment
|
|
377
|
-
- [ ] 与产品愿景一致
|
|
378
|
-
- [ ] 与设计系统一致
|
|
379
|
-
- [ ] 与技术架构一致
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
### Phase 4: Focused Building(专注构建)
|
|
385
|
-
|
|
386
|
-
**目标**:高质量、高效率地实现功能
|
|
387
|
-
|
|
388
|
-
#### 4.1 深度工作原则
|
|
389
|
-
|
|
390
|
-
Linear 团队推崇深度工作:
|
|
391
|
-
|
|
392
|
-
```markdown
|
|
393
|
-
## Deep Work Principles
|
|
394
|
-
|
|
395
|
-
### 1. 长时间专注块
|
|
396
|
-
- 最少 2 小时不间断工作
|
|
397
|
-
- 关闭所有通知
|
|
398
|
-
- 使用番茄工作法(可选)
|
|
399
|
-
|
|
400
|
-
### 2. 减少会议
|
|
401
|
-
- 每周最多 5 小时会议
|
|
402
|
-
- 异步沟通优先
|
|
403
|
-
- 会议必须有明确议程
|
|
404
|
-
|
|
405
|
-
### 3. 批处理沟通
|
|
406
|
-
- 固定时间查看消息(如 10am, 3pm)
|
|
407
|
-
- 不立即回复非紧急消息
|
|
408
|
-
- 使用状态指示器(专注中/可打扰)
|
|
409
|
-
|
|
410
|
-
### 4. 单任务模式
|
|
411
|
-
- 一次只做一个 issue
|
|
412
|
-
- 完成后再开始下一个
|
|
413
|
-
- 避免上下文切换
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
#### 4.2 代码质量标准
|
|
417
|
-
|
|
418
|
-
```typescript
|
|
419
|
-
// Linear 的代码质量标准
|
|
420
|
-
|
|
421
|
-
// ✅ Good: 清晰的命名
|
|
422
|
-
function calculateMonthlyRecurringRevenue(subscriptions: Subscription[]): number {
|
|
423
|
-
return subscriptions
|
|
424
|
-
.filter(sub => sub.status === 'active')
|
|
425
|
-
.reduce((sum, sub) => sum + sub.monthlyPrice, 0)
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// ❌ Bad: 模糊的命名
|
|
429
|
-
function calc(data: any[]): number {
|
|
430
|
-
return data.filter(d => d.s === 'a').reduce((s, d) => s + d.p, 0)
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
// ✅ Good: 小函数,单一职责
|
|
434
|
-
function validateEmail(email: string): boolean {
|
|
435
|
-
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
function validatePassword(password: string): boolean {
|
|
439
|
-
return password.length >= 8
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
function validateUser(user: User): ValidationResult {
|
|
443
|
-
const errors: string[] = []
|
|
444
|
-
if (!validateEmail(user.email)) errors.push('Invalid email')
|
|
445
|
-
if (!validatePassword(user.password)) errors.push('Password too short')
|
|
446
|
-
return { valid: errors.length === 0, errors }
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// ❌ Bad: 大函数,多个职责
|
|
450
|
-
function validate(user: any): any {
|
|
451
|
-
// 100 行验证逻辑
|
|
452
|
-
}
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
#### 4.3 性能优先
|
|
456
|
-
|
|
457
|
-
```typescript
|
|
458
|
-
// Linear 对性能的极致追求
|
|
459
|
-
|
|
460
|
-
// ✅ Good: 优化的列表渲染
|
|
461
|
-
function IssueList({ issues }: { issues: Issue[] }) {
|
|
462
|
-
return (
|
|
463
|
-
<VirtualList
|
|
464
|
-
items={issues}
|
|
465
|
-
itemHeight={48}
|
|
466
|
-
renderItem={(issue) => <IssueRow issue={issue} />}
|
|
467
|
-
/>
|
|
468
|
-
)
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// ❌ Bad: 渲染所有项目
|
|
472
|
-
function IssueList({ issues }: { issues: Issue[] }) {
|
|
473
|
-
return (
|
|
474
|
-
<div>
|
|
475
|
-
{issues.map(issue => <IssueRow key={issue.id} issue={issue} />)}
|
|
476
|
-
</div>
|
|
477
|
-
)
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
// ✅ Good: 防抖搜索
|
|
481
|
-
const debouncedSearch = useMemo(
|
|
482
|
-
() => debounce((query: string) => {
|
|
483
|
-
searchIssues(query)
|
|
484
|
-
}, 300),
|
|
485
|
-
[]
|
|
486
|
-
)
|
|
487
|
-
|
|
488
|
-
// ✅ Good: 乐观更新
|
|
489
|
-
function updateIssue(id: string, data: Partial<Issue>) {
|
|
490
|
-
// 立即更新 UI
|
|
491
|
-
setIssues(prev => prev.map(issue =>
|
|
492
|
-
issue.id === id ? { ...issue, ...data } : issue
|
|
493
|
-
))
|
|
494
|
-
|
|
495
|
-
// 后台同步
|
|
496
|
-
api.updateIssue(id, data).catch(() => {
|
|
497
|
-
// 失败时回滚
|
|
498
|
-
revertIssue(id)
|
|
499
|
-
})
|
|
500
|
-
}
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
#### 4.4 渐进式交付
|
|
504
|
-
|
|
505
|
-
```markdown
|
|
506
|
-
## Progressive Delivery
|
|
507
|
-
|
|
508
|
-
### Week 1: Core Functionality
|
|
509
|
-
- [ ] 基础功能实现
|
|
510
|
-
- [ ] 单元测试
|
|
511
|
-
- [ ] 内部测试
|
|
512
|
-
|
|
513
|
-
### Week 2: Polish
|
|
514
|
-
- [ ] UI 细节优化
|
|
515
|
-
- [ ] 性能优化
|
|
516
|
-
- [ ] 边界情况处理
|
|
517
|
-
|
|
518
|
-
### Week 3: Beta
|
|
519
|
-
- [ ] 部署到 10% 用户
|
|
520
|
-
- [ ] 收集反馈
|
|
521
|
-
- [ ] 修复问题
|
|
522
|
-
|
|
523
|
-
### Week 4: GA
|
|
524
|
-
- [ ] 全量发布
|
|
525
|
-
- [ ] 文档更新
|
|
526
|
-
- [ ] 公告发布
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
---
|
|
530
|
-
|
|
531
|
-
### Phase 5: Quality Assurance(质量保证)
|
|
532
|
-
|
|
533
|
-
**目标**:确保发布的功能达到 Linear 的质量标准
|
|
534
|
-
|
|
535
|
-
#### 5.1 测试清单
|
|
536
|
-
|
|
537
|
-
```markdown
|
|
538
|
-
## Testing Checklist
|
|
539
|
-
|
|
540
|
-
### Functional Testing
|
|
541
|
-
- [ ] 所有用户场景都能正常工作
|
|
542
|
-
- [ ] 边界情况已测试
|
|
543
|
-
- [ ] 错误处理正确
|
|
544
|
-
|
|
545
|
-
### Performance Testing
|
|
546
|
-
- [ ] 页面加载时间 < 1s
|
|
547
|
-
- [ ] 交互响应时间 < 100ms
|
|
548
|
-
- [ ] 无内存泄漏
|
|
549
|
-
|
|
550
|
-
### Accessibility Testing
|
|
551
|
-
- [ ] 键盘导航正常
|
|
552
|
-
- [ ] 屏幕阅读器兼容
|
|
553
|
-
- [ ] 颜色对比度达标
|
|
554
|
-
|
|
555
|
-
### Cross-browser Testing
|
|
556
|
-
- [ ] Chrome (latest)
|
|
557
|
-
- [ ] Firefox (latest)
|
|
558
|
-
- [ ] Safari (latest)
|
|
559
|
-
- [ ] Edge (latest)
|
|
560
|
-
|
|
561
|
-
### Mobile Testing
|
|
562
|
-
- [ ] iOS Safari
|
|
563
|
-
- [ ] Android Chrome
|
|
564
|
-
- [ ] 响应式布局正确
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
#### 5.2 代码审查标准
|
|
568
|
-
|
|
569
|
-
```markdown
|
|
570
|
-
## Code Review Standards
|
|
571
|
-
|
|
572
|
-
### Must Have
|
|
573
|
-
- [ ] 代码符合风格指南
|
|
574
|
-
- [ ] 所有测试通过
|
|
575
|
-
- [ ] 无 TypeScript 错误
|
|
576
|
-
- [ ] 无 ESLint 警告
|
|
577
|
-
|
|
578
|
-
### Should Have
|
|
579
|
-
- [ ] 代码易于理解
|
|
580
|
-
- [ ] 函数长度合理(< 50 行)
|
|
581
|
-
- [ ] 复杂度可控(圈复杂度 < 10)
|
|
582
|
-
- [ ] 有必要的注释
|
|
583
|
-
|
|
584
|
-
### Nice to Have
|
|
585
|
-
- [ ] 性能优化
|
|
586
|
-
- [ ] 可复用性
|
|
587
|
-
- [ ] 扩展性
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
---
|
|
591
|
-
|
|
592
|
-
### Phase 6: Launch & Iterate(发布与迭代)
|
|
593
|
-
|
|
594
|
-
**目标**:成功发布并持续改进
|
|
595
|
-
|
|
596
|
-
#### 6.1 发布清单
|
|
597
|
-
|
|
598
|
-
```markdown
|
|
599
|
-
## Launch Checklist
|
|
600
|
-
|
|
601
|
-
### Pre-launch
|
|
602
|
-
- [ ] 所有测试通过
|
|
603
|
-
- [ ] 性能指标达标
|
|
604
|
-
- [ ] 文档已更新
|
|
605
|
-
- [ ] 团队已培训
|
|
606
|
-
|
|
607
|
-
### Launch
|
|
608
|
-
- [ ] 部署到生产环境
|
|
609
|
-
- [ ] 监控关键指标
|
|
610
|
-
- [ ] 准备回滚方案
|
|
611
|
-
|
|
612
|
-
### Post-launch
|
|
613
|
-
- [ ] 发布公告
|
|
614
|
-
- [ ] 收集用户反馈
|
|
615
|
-
- [ ] 监控错误率
|
|
616
|
-
- [ ] 分析使用数据
|
|
617
|
-
```
|
|
618
|
-
|
|
619
|
-
#### 6.2 成功指标追踪
|
|
620
|
-
|
|
621
|
-
```typescript
|
|
622
|
-
// 追踪关键指标
|
|
623
|
-
const metrics = {
|
|
624
|
-
// 使用指标
|
|
625
|
-
adoptionRate: 0.30, // 30% 用户使用新功能
|
|
626
|
-
dailyActiveUsers: 1250,
|
|
627
|
-
featureUsagePerUser: 8.5,
|
|
628
|
-
|
|
629
|
-
// 性能指标
|
|
630
|
-
p50Latency: 45, // ms
|
|
631
|
-
p95Latency: 120, // ms
|
|
632
|
-
errorRate: 0.001, // 0.1%
|
|
633
|
-
|
|
634
|
-
// 业务指标
|
|
635
|
-
userSatisfaction: 4.8, // 5 分制
|
|
636
|
-
supportTickets: -15, // 减少 15%
|
|
637
|
-
taskCompletionTime: -20 // 减少 20%
|
|
638
|
-
}
|
|
639
|
-
```
|
|
640
|
-
|
|
641
|
-
#### 6.3 迭代计划
|
|
642
|
-
|
|
643
|
-
```markdown
|
|
644
|
-
## Iteration Plan
|
|
645
|
-
|
|
646
|
-
### Week 1 Post-launch
|
|
647
|
-
- 修复关键 bug
|
|
648
|
-
- 优化性能瓶颈
|
|
649
|
-
- 回应用户反馈
|
|
650
|
-
|
|
651
|
-
### Week 2-4
|
|
652
|
-
- 添加用户要求的小改进
|
|
653
|
-
- 优化 UI 细节
|
|
654
|
-
- 完善文档
|
|
655
|
-
|
|
656
|
-
### Month 2+
|
|
657
|
-
- 评估是否达到成功指标
|
|
658
|
-
- 决定下一步方向
|
|
659
|
-
- 规划相关功能
|
|
660
|
-
```
|
|
661
|
-
|
|
662
|
-
---
|
|
663
|
-
|
|
664
|
-
## Linear Principles
|
|
665
|
-
|
|
666
|
-
### 1. 速度源于质量
|
|
667
|
-
|
|
668
|
-
```
|
|
669
|
-
低质量 → 技术债务 → 开发变慢 → 更多债务 → 恶性循环
|
|
670
|
-
高质量 → 易于修改 → 开发加速 → 更高质量 → 良性循环
|
|
671
|
-
```
|
|
672
|
-
|
|
673
|
-
### 2. 简洁胜于复杂
|
|
674
|
-
|
|
675
|
-
```markdown
|
|
676
|
-
❌ 添加配置选项让用户选择
|
|
677
|
-
✅ 选择最佳默认值
|
|
678
|
-
|
|
679
|
-
❌ 支持所有可能的用例
|
|
680
|
-
✅ 专注核心用例
|
|
681
|
-
|
|
682
|
-
❌ 功能越多越好
|
|
683
|
-
✅ 功能恰到好处
|
|
684
|
-
```
|
|
685
|
-
|
|
686
|
-
### 3. 细节决定成败
|
|
687
|
-
|
|
688
|
-
```typescript
|
|
689
|
-
// Linear 对细节的关注
|
|
690
|
-
|
|
691
|
-
// 动画时长精确到毫秒
|
|
692
|
-
const ANIMATION_DURATION = 150 // ms
|
|
693
|
-
|
|
694
|
-
// 间距使用 4px 网格系统
|
|
695
|
-
const SPACING = {
|
|
696
|
-
xs: 4,
|
|
697
|
-
sm: 8,
|
|
698
|
-
md: 16,
|
|
699
|
-
lg: 24,
|
|
700
|
-
xl: 32
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
// 颜色有明确的语义
|
|
704
|
-
const COLORS = {
|
|
705
|
-
primary: '#5E6AD2',
|
|
706
|
-
success: '#0FA958',
|
|
707
|
-
warning: '#F2994A',
|
|
708
|
-
error: '#E5484D'
|
|
709
|
-
}
|
|
710
|
-
```
|
|
711
|
-
|
|
712
|
-
### 4. 用户体验无处不在
|
|
713
|
-
|
|
714
|
-
```markdown
|
|
715
|
-
## UX Checklist
|
|
716
|
-
|
|
717
|
-
- [ ] 加载状态(不让用户等待)
|
|
718
|
-
- [ ] 错误提示(清晰的错误信息)
|
|
719
|
-
- [ ] 空状态(引导用户开始使用)
|
|
720
|
-
- [ ] 快捷键(提升效率)
|
|
721
|
-
- [ ] 撤销操作(允许犯错)
|
|
722
|
-
- [ ] 乐观更新(即时反馈)
|
|
723
|
-
- [ ] 渐进增强(基础功能优先)
|
|
724
|
-
```
|
|
725
|
-
|
|
726
|
-
---
|
|
727
|
-
|
|
728
|
-
## Command Options
|
|
729
|
-
|
|
730
|
-
- `--validate`:运行问题验证流程
|
|
731
|
-
- `--prioritize`:使用 RICE 框架排序
|
|
732
|
-
- `--focus-mode`:启动专注构建模式
|
|
733
|
-
- `--quality-check`:运行质量检查
|
|
734
|
-
|
|
735
|
-
---
|
|
736
|
-
|
|
737
|
-
## Success Metrics
|
|
738
|
-
|
|
739
|
-
- ✅ 功能采用率 > 30%
|
|
740
|
-
- ✅ 用户满意度 > 4.5/5
|
|
741
|
-
- ✅ 性能 P95 < 200ms
|
|
742
|
-
- ✅ 错误率 < 0.1%
|
|
743
|
-
- ✅ 技术债务保持低水平
|
|
744
|
-
|
|
745
|
-
---
|
|
746
|
-
|
|
747
|
-
## References
|
|
748
|
-
|
|
749
|
-
- Linear Blog: "How we build Linear"
|
|
750
|
-
- Linear Method: Product development philosophy
|
|
751
|
-
- Cal Newport - *Deep Work*
|
|
752
|
-
- Basecamp - *Shape Up*
|