@gian-tiaga/eda 0.4.1 → 0.4.2

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/README.md CHANGED
@@ -64,19 +64,29 @@ eda init
64
64
  version: 1
65
65
 
66
66
  defaults:
67
+ # true | false
67
68
  strict: false
69
+ # normal | short | ask_each_time
68
70
  plan_size: normal
71
+ # after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
72
+ test_strategy: ask_each_time
73
+ # debug_precise | standard | ask_each_time
74
+ logging_strategy: ask_each_time
69
75
 
70
76
  automate:
77
+ # true | false
71
78
  include_plans: false
72
79
 
73
80
  review:
81
+ # true | false
74
82
  include_code_quality: true
75
83
  ```
76
84
 
77
85
  Что означают настройки:
78
86
  - `defaults.strict` — включает strict-режим по умолчанию для `eda-explore`, `eda-plan` и `eda-review`.
79
87
  - `defaults.plan_size` — размер плана для `eda-plan`: `normal`, `short` или `ask_each_time`.
88
+ - `defaults.test_strategy` — стратегия тестов для `eda-plan`: `after_each_phase`, `tdd_each_phase`, `end_of_plan` или `ask_each_time`.
89
+ - `defaults.logging_strategy` — стратегия логирования для `eda-plan`: `debug_precise`, `standard` или `ask_each_time`.
80
90
  - `automate.include_plans` — добавляет `docs/plans/` в обычный запуск `eda-automate`.
81
91
  - `review.include_code_quality` — добавляет в `eda-review` проверку качества кода и отдельного мета-ревьюера `quality-check`.
82
92
 
package/lib/install.js CHANGED
@@ -17,6 +17,8 @@ const RETIRED_SKILLS = ['eda-research'];
17
17
  const DEFAULT_SETTINGS = {
18
18
  strict: false,
19
19
  planSize: 'normal',
20
+ testStrategy: 'ask_each_time',
21
+ loggingStrategy: 'ask_each_time',
20
22
  includePlans: false,
21
23
  includeCodeQuality: true
22
24
  };
@@ -51,6 +53,38 @@ const PLAN_SIZE_CHOICES = [
51
53
  name: 'Спрашивать размер плана каждый раз'
52
54
  }
53
55
  ];
56
+ const TEST_STRATEGY_CHOICES = [
57
+ {
58
+ value: 'after_each_phase',
59
+ name: 'Писать и запускать тесты после каждой фазы'
60
+ },
61
+ {
62
+ value: 'tdd_each_phase',
63
+ name: 'В каждой фазе сначала тесты, затем код'
64
+ },
65
+ {
66
+ value: 'end_of_plan',
67
+ name: 'Писать тесты в конце плана отдельной фазой'
68
+ },
69
+ {
70
+ value: 'ask_each_time',
71
+ name: 'Спрашивать стратегию тестов каждый раз'
72
+ }
73
+ ];
74
+ const LOGGING_STRATEGY_CHOICES = [
75
+ {
76
+ value: 'standard',
77
+ name: 'Стандартные info / warning / error по необходимости'
78
+ },
79
+ {
80
+ value: 'debug_precise',
81
+ name: 'Подробные debug-логи на важных шагах'
82
+ },
83
+ {
84
+ value: 'ask_each_time',
85
+ name: 'Спрашивать стратегию логирования каждый раз'
86
+ }
87
+ ];
54
88
 
55
89
  export async function init({ cwd, input = process.stdin, output = process.stdout }) {
56
90
  const targets = await askTargets({ input, output });
@@ -117,9 +151,29 @@ export async function askSettings({ input = process.stdin, output = process.stdo
117
151
  output
118
152
  });
119
153
 
154
+ const testStrategy = await select({
155
+ message: 'Какую стратегию тестов eda-plan использовать по умолчанию?',
156
+ choices: TEST_STRATEGY_CHOICES,
157
+ default: DEFAULT_SETTINGS.testStrategy
158
+ }, {
159
+ input,
160
+ output
161
+ });
162
+
163
+ const loggingStrategy = await select({
164
+ message: 'Какую стратегию логирования eda-plan использовать по умолчанию?',
165
+ choices: LOGGING_STRATEGY_CHOICES,
166
+ default: DEFAULT_SETTINGS.loggingStrategy
167
+ }, {
168
+ input,
169
+ output
170
+ });
171
+
120
172
  return {
121
173
  strict: selected.includes('strict'),
122
174
  planSize,
175
+ testStrategy,
176
+ loggingStrategy,
123
177
  includePlans: selected.includes('includePlans'),
124
178
  includeCodeQuality: selected.includes('includeCodeQuality')
125
179
  };
@@ -158,6 +212,8 @@ async function ensureSettings(cwd, { input = process.stdin, output = process.std
158
212
  const settingsPath = path.join(cwd, SETTINGS_RELATIVE_PATH);
159
213
  if (await fileExists(settingsPath)) {
160
214
  output.write(`Настройки уже есть: ${SETTINGS_RELATIVE_PATH}\n`);
215
+ output.write('Существующий файл не перезаписываю. Актуальный формат:\n\n');
216
+ output.write(formatSettings(DEFAULT_SETTINGS));
161
217
  return;
162
218
  }
163
219
 
@@ -171,13 +227,21 @@ function formatSettings(settings) {
171
227
  return `version: 1
172
228
 
173
229
  defaults:
230
+ # true | false
174
231
  strict: ${settings.strict ? 'true' : 'false'}
232
+ # normal | short | ask_each_time
175
233
  plan_size: ${settings.planSize}
234
+ # after_each_phase | tdd_each_phase | end_of_plan | ask_each_time
235
+ test_strategy: ${settings.testStrategy}
236
+ # debug_precise | standard | ask_each_time
237
+ logging_strategy: ${settings.loggingStrategy}
176
238
 
177
239
  automate:
240
+ # true | false
178
241
  include_plans: ${settings.includePlans ? 'true' : 'false'}
179
242
 
180
243
  review:
244
+ # true | false
181
245
  include_code_quality: ${settings.includeCodeQuality ? 'true' : 'false'}
182
246
  `;
183
247
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gian-tiaga/eda",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Набор скилов eda-* для Claude Code и Codex CLI: explore, plan, execute, fix, review, fix-by-review, send-review, commit, docs, automate",
5
5
  "type": "module",
6
6
  "bin": {