ccjk 1.3.7 → 1.4.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.
@@ -20,7 +20,7 @@ import trash from 'trash';
20
20
  import i18next from 'i18next';
21
21
  import Backend from 'i18next-fs-backend';
22
22
 
23
- const version = "1.3.7";
23
+ const version = "1.4.0";
24
24
  const homepage = "https://github.com/miounet11/ccjk";
25
25
 
26
26
  const i18n = i18next.createInstance();
@@ -1279,15 +1279,15 @@ function createDefaultTomlConfig(preferredLang = "en", claudeCodeInstallType = "
1279
1279
  },
1280
1280
  claudeCode: {
1281
1281
  enabled: true,
1282
- outputStyles: ["engineer-professional"],
1283
- defaultOutputStyle: "engineer-professional",
1282
+ outputStyles: ["speed-coder", "senior-architect", "pair-programmer"],
1283
+ defaultOutputStyle: "senior-architect",
1284
1284
  installType: claudeCodeInstallType,
1285
1285
  currentProfile: "",
1286
1286
  profiles: {}
1287
1287
  },
1288
1288
  codex: {
1289
1289
  enabled: false,
1290
- systemPromptStyle: "engineer-professional"
1290
+ systemPromptStyle: "senior-architect"
1291
1291
  }
1292
1292
  };
1293
1293
  }
@@ -3439,7 +3439,7 @@ async function resolveSystemPromptStyle(availablePrompts, commandLineOption, sav
3439
3439
  }
3440
3440
  }
3441
3441
  if (skipPrompt) {
3442
- return "engineer-professional";
3442
+ return "senior-architect";
3443
3443
  }
3444
3444
  const { systemPrompt } = await inquirer.prompt([{
3445
3445
  type: "list",
@@ -3449,8 +3449,8 @@ async function resolveSystemPromptStyle(availablePrompts, commandLineOption, sav
3449
3449
  name: `${style.name} - ${ansis.gray(style.description)}`,
3450
3450
  value: style.id
3451
3451
  }))),
3452
- default: "engineer-professional"
3453
- // Default to engineer-professional
3452
+ default: "senior-architect"
3453
+ // Default to senior-architect
3454
3454
  }]);
3455
3455
  if (!systemPrompt) {
3456
3456
  console.log(ansis.yellow(i18n.t("common:cancelled")));
@@ -4447,24 +4447,19 @@ async function runCodexSystemPromptSelection(skipPrompt = false) {
4447
4447
  return;
4448
4448
  const availablePrompts = [
4449
4449
  {
4450
- id: "engineer-professional",
4451
- name: i18n.t("configuration:outputStyles.engineer-professional.name"),
4452
- description: i18n.t("configuration:outputStyles.engineer-professional.description")
4453
- },
4454
- {
4455
- id: "laowang-engineer",
4456
- name: i18n.t("configuration:outputStyles.laowang-engineer.name"),
4457
- description: i18n.t("configuration:outputStyles.laowang-engineer.description")
4450
+ id: "speed-coder",
4451
+ name: i18n.t("configuration:outputStyles.speed-coder.name"),
4452
+ description: i18n.t("configuration:outputStyles.speed-coder.description")
4458
4453
  },
4459
4454
  {
4460
- id: "nekomata-engineer",
4461
- name: i18n.t("configuration:outputStyles.nekomata-engineer.name"),
4462
- description: i18n.t("configuration:outputStyles.nekomata-engineer.description")
4455
+ id: "senior-architect",
4456
+ name: i18n.t("configuration:outputStyles.senior-architect.name"),
4457
+ description: i18n.t("configuration:outputStyles.senior-architect.description")
4463
4458
  },
4464
4459
  {
4465
- id: "ojousama-engineer",
4466
- name: i18n.t("configuration:outputStyles.ojousama-engineer.name"),
4467
- description: i18n.t("configuration:outputStyles.ojousama-engineer.description")
4460
+ id: "pair-programmer",
4461
+ name: i18n.t("configuration:outputStyles.pair-programmer.name"),
4462
+ description: i18n.t("configuration:outputStyles.pair-programmer.description")
4468
4463
  }
4469
4464
  ].filter((style) => exists(join(systemPromptSrc, `${style.id}.md`)));
4470
4465
  if (availablePrompts.length === 0)
@@ -6774,16 +6769,16 @@ async function validateSkipPromptOptions(options) {
6774
6769
  if (options.outputStyles === "skip") {
6775
6770
  options.outputStyles = false;
6776
6771
  } else if (options.outputStyles === "all") {
6777
- options.outputStyles = ["engineer-professional", "nekomata-engineer", "laowang-engineer"];
6772
+ options.outputStyles = ["speed-coder", "senior-architect", "pair-programmer"];
6778
6773
  } else {
6779
6774
  options.outputStyles = options.outputStyles.split(",").map((s) => s.trim());
6780
6775
  }
6781
6776
  }
6782
6777
  if (options.outputStyles === void 0) {
6783
- options.outputStyles = ["engineer-professional", "nekomata-engineer", "laowang-engineer"];
6778
+ options.outputStyles = ["speed-coder", "senior-architect", "pair-programmer"];
6784
6779
  }
6785
6780
  if (!options.defaultOutputStyle) {
6786
- options.defaultOutputStyle = "engineer-professional";
6781
+ options.defaultOutputStyle = "senior-architect";
6787
6782
  }
6788
6783
  if (typeof options.installCometixLine === "string") {
6789
6784
  options.installCometixLine = options.installCometixLine.toLowerCase() === "true";
@@ -6841,7 +6836,7 @@ async function validateSkipPromptOptions(options) {
6841
6836
  }
6842
6837
  }
6843
6838
  if (Array.isArray(options.outputStyles)) {
6844
- const validStyles = ["engineer-professional", "nekomata-engineer", "laowang-engineer", "default", "explanatory", "learning"];
6839
+ const validStyles = ["speed-coder", "senior-architect", "pair-programmer", "default", "explanatory", "learning"];
6845
6840
  for (const style of options.outputStyles) {
6846
6841
  if (!validStyles.includes(style)) {
6847
6842
  throw new Error(i18n.t("errors:invalidOutputStyle", { style, validStyles: validStyles.join(", ") }));
@@ -6849,7 +6844,7 @@ async function validateSkipPromptOptions(options) {
6849
6844
  }
6850
6845
  }
6851
6846
  if (options.defaultOutputStyle) {
6852
- const validStyles = ["engineer-professional", "nekomata-engineer", "laowang-engineer", "default", "explanatory", "learning"];
6847
+ const validStyles = ["speed-coder", "senior-architect", "pair-programmer", "default", "explanatory", "learning"];
6853
6848
  if (!validStyles.includes(options.defaultOutputStyle)) {
6854
6849
  throw new Error(i18n.t("errors:invalidDefaultOutputStyle", { style: options.defaultOutputStyle, validStyles: validStyles.join(", ") }));
6855
6850
  }
package/dist/cli.mjs CHANGED
@@ -5776,7 +5776,7 @@ function customizeHelp(sections) {
5776
5776
  ` ${ansis.green("--mcp-services, -m")} <list> ${i18n.t("cli:help.optionDescriptions.mcpServices")} (${i18n.t("cli:help.defaults.prefix")} all non-key services)`,
5777
5777
  ` ${ansis.green("--workflows, -w")} <list> ${i18n.t("cli:help.optionDescriptions.workflows")} (${i18n.t("cli:help.defaults.prefix")} all workflows)`,
5778
5778
  ` ${ansis.green("--output-styles, -o")} <styles> ${i18n.t("cli:help.optionDescriptions.outputStyles")} (${i18n.t("cli:help.defaults.prefix")} all custom styles)`,
5779
- ` ${ansis.green("--default-output-style, -d")} <style> ${i18n.t("cli:help.optionDescriptions.defaultOutputStyle")} (${i18n.t("cli:help.defaults.prefix")} engineer-professional)`,
5779
+ ` ${ansis.green("--default-output-style, -d")} <style> ${i18n.t("cli:help.optionDescriptions.defaultOutputStyle")} (${i18n.t("cli:help.defaults.prefix")} senior-architect)`,
5780
5780
  ` ${ansis.green("--code-type, -T")} <type> ${i18n.t("cli:help.optionDescriptions.codeToolType")} (claude-code, codex, cc=claude-code, cx=codex)`,
5781
5781
  ` ${ansis.green("--install-cometix-line, -x")} <value> ${i18n.t("cli:help.optionDescriptions.installStatuslineTool")} (${i18n.t("cli:help.defaults.prefix")} true)`
5782
5782
  ].join("\n")
@@ -5845,7 +5845,7 @@ async function setupCommands(cli) {
5845
5845
  cli.command("", "Show interactive menu (default)").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--force, -f", "Force overwrite existing configuration").option("--code-type, -T <codeType>", "Select code tool type (claude-code, codex, cc, cx)").action(await withLanguageResolution(async (options) => {
5846
5846
  await showMainMenu({ codeType: options.codeType });
5847
5847
  }));
5848
- cli.command("init", "Initialize Claude Code configuration").alias("i").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--ai-output-lang, -a <lang>", "AI output language").option("--force, -f", "Force overwrite existing configuration").option("--skip-prompt, -s", "Skip all interactive prompts (non-interactive mode)").option("--config-action, -r <action>", `Config handling (new/backup/merge/docs-only/skip), ${i18n.t("cli:help.defaults.prefix")} backup`).option("--api-type, -t <type>", "API type (auth_token/api_key/ccr_proxy/skip)").option("--api-key, -k <key>", "API key (used for both API key and auth token types)").option("--api-url, -u <url>", "Custom API URL").option("--api-model, -M <model>", "Primary API model (e.g., claude-sonnet-4-5)").option("--api-haiku-model, -H <model>", "Default Haiku model (e.g., claude-haiku-4-5)").option("--api-sonnet-model, -S <model>", "Default Sonnet model (e.g., claude-sonnet-4-5)").option("--api-opus-model, -O <model>", "Default Opus model (e.g., claude-opus-4-5)").option("--provider, -p <provider>", "API provider preset (302ai, glm, minimax, kimi, custom)").option("--mcp-services, -m <services>", `Comma-separated MCP services to install (context7,mcp-deepwiki,Playwright,exa), "skip" to skip all, "all" for all non-key services, ${i18n.t("cli:help.defaults.prefix")} all`).option("--workflows, -w <workflows>", `Comma-separated workflows to install (sixStepsWorkflow,featPlanUx,gitWorkflow,bmadWorkflow), "skip" to skip all, "all" for all workflows, ${i18n.t("cli:help.defaults.prefix")} all`).option("--output-styles, -o <styles>", `Comma-separated output styles (engineer-professional,nekomata-engineer,laowang-engineer,default,explanatory,learning), "skip" to skip all, "all" for all custom styles, ${i18n.t("cli:help.defaults.prefix")} all`).option("--default-output-style, -d <style>", `Default output style, ${i18n.t("cli:help.defaults.prefix")} engineer-professional`).option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--code-type, -T <codeType>", "Select code tool type (claude-code, codex, cc, cx)").option("--install-cometix-line, -x <value>", `Install CCometixLine statusline tool (true/false), ${i18n.t("cli:help.defaults.prefix")} true`).option("--api-configs <configs>", "API configurations as JSON string for multiple profiles").option("--api-configs-file <file>", "Path to JSON file containing API configurations").action(await withLanguageResolution(async (options) => {
5848
+ cli.command("init", "Initialize Claude Code configuration").alias("i").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--ai-output-lang, -a <lang>", "AI output language").option("--force, -f", "Force overwrite existing configuration").option("--skip-prompt, -s", "Skip all interactive prompts (non-interactive mode)").option("--config-action, -r <action>", `Config handling (new/backup/merge/docs-only/skip), ${i18n.t("cli:help.defaults.prefix")} backup`).option("--api-type, -t <type>", "API type (auth_token/api_key/ccr_proxy/skip)").option("--api-key, -k <key>", "API key (used for both API key and auth token types)").option("--api-url, -u <url>", "Custom API URL").option("--api-model, -M <model>", "Primary API model (e.g., claude-sonnet-4-5)").option("--api-haiku-model, -H <model>", "Default Haiku model (e.g., claude-haiku-4-5)").option("--api-sonnet-model, -S <model>", "Default Sonnet model (e.g., claude-sonnet-4-5)").option("--api-opus-model, -O <model>", "Default Opus model (e.g., claude-opus-4-5)").option("--provider, -p <provider>", "API provider preset (302ai, glm, minimax, kimi, custom)").option("--mcp-services, -m <services>", `Comma-separated MCP services to install (context7,mcp-deepwiki,Playwright,exa), "skip" to skip all, "all" for all non-key services, ${i18n.t("cli:help.defaults.prefix")} all`).option("--workflows, -w <workflows>", `Comma-separated workflows to install (sixStepsWorkflow,featPlanUx,gitWorkflow,bmadWorkflow), "skip" to skip all, "all" for all workflows, ${i18n.t("cli:help.defaults.prefix")} all`).option("--output-styles, -o <styles>", `Comma-separated output styles (speed-coder,senior-architect,pair-programmer,default,explanatory,learning), "skip" to skip all, "all" for all custom styles, ${i18n.t("cli:help.defaults.prefix")} all`).option("--default-output-style, -d <style>", `Default output style, ${i18n.t("cli:help.defaults.prefix")} senior-architect`).option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--code-type, -T <codeType>", "Select code tool type (claude-code, codex, cc, cx)").option("--install-cometix-line, -x <value>", `Install CCometixLine statusline tool (true/false), ${i18n.t("cli:help.defaults.prefix")} true`).option("--api-configs <configs>", "API configurations as JSON string for multiple profiles").option("--api-configs-file <file>", "Path to JSON file containing API configurations").action(await withLanguageResolution(async (options) => {
5849
5849
  await init(options);
5850
5850
  }));
5851
5851
  cli.command("update", "Update Claude Code prompts only").alias("u").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").action(await withLanguageResolution(async (options) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ccjk",
3
3
  "type": "module",
4
- "version": "1.3.7",
4
+ "version": "1.4.0",
5
5
  "packageManager": "pnpm@10.17.1",
6
6
  "description": "Claude Code JinKu - Advanced AI-powered development assistant with skills, agents, and LLM-driven audit",
7
7
  "author": {
@@ -120,43 +120,43 @@
120
120
  "docs:preview": "pnpm -F @ccjk/docs preview"
121
121
  },
122
122
  "dependencies": {
123
- "@types/semver": "catalog:types",
124
- "ansis": "catalog:cli",
125
- "cac": "catalog:cli",
126
- "dayjs": "catalog:runtime",
127
- "find-up-simple": "catalog:runtime",
128
- "fs-extra": "catalog:runtime",
129
- "i18next": "catalog:runtime",
130
- "i18next-fs-backend": "catalog:runtime",
131
- "inquirer": "catalog:cli",
132
- "inquirer-toggle": "catalog:cli",
133
- "ora": "catalog:cli",
134
- "pathe": "catalog:runtime",
135
- "semver": "catalog:runtime",
136
- "smol-toml": "catalog:runtime",
137
- "tinyexec": "catalog:runtime",
138
- "trash": "catalog:runtime"
123
+ "@types/semver": "^7.7.1",
124
+ "ansis": "^4.1.0",
125
+ "cac": "^6.7.14",
126
+ "dayjs": "^1.11.18",
127
+ "find-up-simple": "^1.0.1",
128
+ "fs-extra": "^11.3.2",
129
+ "i18next": "^25.5.2",
130
+ "i18next-fs-backend": "^2.6.0",
131
+ "inquirer": "^12.9.6",
132
+ "inquirer-toggle": "^1.0.1",
133
+ "ora": "^9.0.0",
134
+ "pathe": "^2.0.3",
135
+ "semver": "^7.7.2",
136
+ "smol-toml": "^1.4.2",
137
+ "tinyexec": "^1.0.1",
138
+ "trash": "^10.0.0"
139
139
  },
140
140
  "devDependencies": {
141
- "@antfu/eslint-config": "catalog:build",
142
- "@changesets/cli": "catalog:tooling",
143
- "@commitlint/cli": "catalog:tooling",
144
- "@commitlint/config-conventional": "catalog:tooling",
145
- "@commitlint/types": "catalog:tooling",
146
- "@types/fs-extra": "catalog:types",
147
- "@types/inquirer": "catalog:types",
148
- "@types/node": "catalog:types",
149
- "@vitest/coverage-v8": "catalog:testing",
150
- "@vitest/ui": "catalog:testing",
151
- "eslint": "catalog:build",
152
- "eslint-plugin-format": "catalog:build",
153
- "glob": "catalog:testing",
154
- "husky": "catalog:tooling",
155
- "lint-staged": "catalog:tooling",
156
- "tsx": "catalog:build",
157
- "typescript": "catalog:build",
158
- "unbuild": "catalog:build",
159
- "vitest": "catalog:testing"
141
+ "@antfu/eslint-config": "^5.4.1",
142
+ "@changesets/cli": "^2.29.7",
143
+ "@commitlint/cli": "^19.8.1",
144
+ "@commitlint/config-conventional": "^19.8.1",
145
+ "@commitlint/types": "^19.8.1",
146
+ "@types/fs-extra": "^11.0.4",
147
+ "@types/inquirer": "^9.0.9",
148
+ "@types/node": "^22.18.6",
149
+ "@vitest/coverage-v8": "^3.2.4",
150
+ "@vitest/ui": "^3.2.4",
151
+ "eslint": "^9.36.0",
152
+ "eslint-plugin-format": "^1.0.2",
153
+ "glob": "^11.0.3",
154
+ "husky": "^9.1.7",
155
+ "lint-staged": "^16.2.0",
156
+ "tsx": "^4.20.5",
157
+ "typescript": "^5.9.2",
158
+ "unbuild": "^3.6.1",
159
+ "vitest": "^3.2.4"
160
160
  },
161
161
  "lint-staged": {
162
162
  "*": [
@@ -1,138 +1,177 @@
1
1
  ---
2
2
  name: pair-programmer
3
- description: Pair programming mode with collaborative development, discussion-driven approach, ideal for exploratory development and complex problem solving.
3
+ description: Pair programming mode with smart collaboration, auto-adjusting discussion depth based on task complexity for efficient problem solving.
4
4
  ---
5
5
 
6
6
  # Pair Programmer Mode
7
7
 
8
8
  ## Core Philosophy
9
9
 
10
- I'm your pair programming partner. Together we:
11
- - 🤔 Analyze problems, discuss approaches
12
- - 💡 Explore different implementation ideas
13
- - 🔍 Discover edge cases and potential issues
14
- - ✅ Ensure code quality
10
+ I'm your pair programming partner - smart collaboration, efficient iteration.
15
11
 
16
- ## Collaboration Style
12
+ ## Smart Mode Switching
17
13
 
18
- ### 1. Understanding First
14
+ Automatically selecting the best collaboration approach based on task:
19
15
 
20
- Before coding, I'll confirm:
21
- - What problem are you trying to solve?
22
- - What constraints exist?
23
- - What's the expected outcome?
16
+ | Mode | Trigger | Style |
17
+ |------|---------|-------|
18
+ | **Execute Mode** | Clear requirements, obvious solution | Direct implementation, explain as we go |
19
+ | **Explore Mode** | Unclear requirements, multiple options | Discuss approaches first, then implement |
20
+ | **Review Mode** | Code review, debugging | Careful inspection, structured feedback |
24
21
 
25
- ### 2. Solution Discussion
22
+ ## Quick Commands
26
23
 
27
- For complex problems, I'll:
28
- - Propose 2-3 viable approaches
29
- - Analyze pros and cons of each
30
- - Recommend the best fit with reasoning
24
+ | Command | Action |
25
+ |---------|--------|
26
+ | `continue` | Proceed to next step |
27
+ | `rollback` | Undo last operation |
28
+ | `summary` | Summarize current progress |
29
+ | `options` | List alternative approaches |
30
+ | `switch` | Switch collaboration mode |
31
31
 
32
- ### 3. Incremental Implementation
32
+ ## Context Tracking
33
+
34
+ For each task, I maintain:
33
35
 
34
36
  ```
35
- [Step 1: Core functionality]
36
- Looks good?
37
- [Step 2: Edge case handling]
38
- Looks good?
39
- [Step 3: Optimization & polish]
37
+ 📋 Task: [current goal]
38
+ 📍 Progress: [completed] / [total steps]
39
+ Done: [step list]
40
+ Next: [upcoming step]
41
+ 📝 Decisions: [key decisions and rationale]
40
42
  ```
41
43
 
42
- ### 4. Real-time Feedback
44
+ ## Problem Solving Framework
43
45
 
44
- - Point out issues immediately
45
- - Suggest better approaches when found
46
- - Ask questions when uncertain
46
+ For complex problems, I follow this structure:
47
+
48
+ ```
49
+ 1. Problem Definition
50
+ - Observed: [what's happening]
51
+ - Expected: [what should happen]
52
+ - Gap: [core issue]
53
+
54
+ 2. Root Cause Analysis
55
+ - Possible causes: [list]
56
+ - Verification: [how to confirm]
57
+ - Root cause: [confirmed result]
58
+
59
+ 3. Solution Evaluation
60
+ - Option A: [description] → cost/benefit
61
+ - Option B: [description] → cost/benefit
62
+ - Recommendation: [choice and reasoning]
63
+
64
+ 4. Implementation & Verification
65
+ - Steps: [specific actions]
66
+ - Validation: [how to confirm fix]
67
+ - Rollback: [if things go wrong]
68
+ ```
47
69
 
48
70
  ## Response Style
49
71
 
50
- ### Simple Tasks
72
+ ### Execute Mode (Default)
51
73
 
52
- Direct solution with brief explanation:
74
+ When requirements are clear, take action:
53
75
 
54
76
  ```
55
- How about this approach?
56
-
57
- [Code]
77
+ [Code implementation]
58
78
 
59
- Main consideration was [key point]. What do you think?
79
+ Done [key point]. Continue to next step?
60
80
  ```
61
81
 
62
- ### Complex Tasks
82
+ ### Explore Mode
63
83
 
64
- Step-by-step collaboration:
84
+ When requirements are unclear, align first:
65
85
 
66
86
  ```
67
- I understand you want to [goal], right?
87
+ I understand you want [goal]. Two directions:
68
88
 
69
- I'm thinking of a few approaches:
89
+ A. [approach] - suits [scenario]
90
+ B. [approach] - suits [scenario]
70
91
 
71
- **Option A**: [brief description]
72
- - Pros: ...
73
- - Cons: ...
92
+ Leaning toward A because [reason]. Which one?
93
+ ```
94
+
95
+ ### Review Mode
74
96
 
75
- **Option B**: [brief description]
76
- - Pros: ...
77
- - Cons: ...
97
+ Structured feedback for code review:
78
98
 
79
- I'd lean toward Option A because [reason]. What do you think?
80
99
  ```
100
+ Review results:
101
+
102
+ 🔴 Must fix
103
+ - [location]: [issue] → [suggestion]
104
+
105
+ 🟡 Should improve
106
+ - [location]: [issue] → [suggestion]
81
107
 
82
- ### Code Review
108
+ 🟢 Well done
109
+ - [highlight]
83
110
 
111
+ Want me to fix these?
84
112
  ```
85
- Looking at the code, a few thoughts:
86
113
 
87
- 1. [specific location] - [issue/suggestion]
88
- 2. [specific location] - [issue/suggestion]
114
+ ## Efficient Collaboration Principles
89
115
 
90
- Want me to help fix these?
116
+ ### Minimize Confirmation Overhead
117
+
118
+ - **Simple tasks**: Just do it, inform when done
119
+ - **Medium tasks**: Explain as I go, don't wait for confirmation
120
+ - **Complex tasks**: Only confirm at key decision points
121
+
122
+ ### Smart Judgment
123
+
124
+ - Clear best solution → implement directly
125
+ - Trade-offs exist → brief explanation, then recommend
126
+ - Major decision → detailed discussion
127
+
128
+ ### Fast Iteration
129
+
130
+ ```
131
+ [Implement] → [Feedback] → [Adjust] → [Done]
132
+ ↑___________| (rapid cycle)
91
133
  ```
92
134
 
93
135
  ## Engineering Principles
94
136
 
95
- While collaborative, we still follow:
96
-
97
- - **KISS**: Keep it simple, no over-engineering
98
- - **DRY**: I'll flag duplicate code
99
- - **YAGNI**: Focus on current needs
100
- - **SOLID**: Keep code structure clean
137
+ - **KISS**: Simple solutions first
138
+ - **DRY**: Flag duplicates immediately
139
+ - **YAGNI**: Only what's needed now
140
+ - **SOLID**: Keep structure clean
101
141
 
102
142
  ## Dangerous Operations
103
143
 
104
- I'll specifically warn about:
144
+ These always require confirmation:
105
145
 
106
- - 🗑️ Deleting files/data
107
- - 📤 git push / reset
108
- - ⚙️ System config changes
109
- - 🌐 Production operations
146
+ - Deleting files/data
147
+ - git push / reset --hard
148
+ - System config changes
149
+ - Production operations
110
150
 
111
151
  ```
112
- ⚠️ Hold on, this operation will [impact]
113
- Are you sure you want to proceed?
152
+ ⚠️ Dangerous operation: [action]
153
+ Impact: [scope]
154
+ Confirm to proceed?
114
155
  ```
115
156
 
116
157
  ## Code Style
117
158
 
118
159
  - **Comments**: Match codebase language
119
- - **Naming**: Discuss together for best names
160
+ - **Naming**: Concise and accurate, discuss when needed
120
161
  - **Formatting**: Follow existing project style
121
162
 
122
- ## When to Use This Mode?
123
-
124
- ✅ Good for:
125
- - Exploratory development, uncertain best approach
126
- - Complex business logic implementation
127
- - Code refactoring and architecture changes
128
- - Learning new technologies or frameworks
129
- - Debugging tricky bugs
163
+ ## Use Cases
130
164
 
131
- Less suitable for:
132
- - Simple CRUD operations
133
- - Tasks you already know how to do
134
- - Maximum speed scenarios (use Speed Coder mode)
165
+ | Scenario | Recommendation |
166
+ |----------|----------------|
167
+ | Exploratory development | ⭐⭐⭐ |
168
+ | Complex business logic | ⭐⭐⭐ |
169
+ | Code refactoring | ⭐⭐⭐ |
170
+ | Debugging tricky issues | ⭐⭐⭐ |
171
+ | Learning new tech | ⭐⭐⭐ |
172
+ | Simple CRUD | ⭐ |
173
+ | Maximum speed | ⭐ |
135
174
 
136
175
  ---
137
176
 
138
- **Ready? Tell me what you want to build, and let's figure it out together!**
177
+ **Tell me what you want to do, let's start!**