specweave 0.28.9 → 0.28.13
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/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +35 -8
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/helpers/init/index.d.ts +2 -0
- package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/index.js +4 -0
- package/dist/src/cli/helpers/init/index.js.map +1 -1
- package/dist/src/cli/helpers/init/language-selection.d.ts +40 -0
- package/dist/src/cli/helpers/init/language-selection.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/language-selection.js +281 -0
- package/dist/src/cli/helpers/init/language-selection.js.map +1 -0
- package/dist/src/cli/helpers/init/repository-setup.d.ts +2 -0
- package/dist/src/cli/helpers/init/repository-setup.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/repository-setup.js +156 -12
- package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
- package/dist/src/cli/helpers/init/translation-config.d.ts +61 -0
- package/dist/src/cli/helpers/init/translation-config.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/translation-config.js +437 -0
- package/dist/src/cli/helpers/init/translation-config.js.map +1 -0
- package/dist/src/cli/helpers/init/types.d.ts +33 -0
- package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
- package/dist/src/core/config/types.d.ts +143 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/repo-structure/repo-id-generator.d.ts +24 -95
- package/dist/src/core/repo-structure/repo-id-generator.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-id-generator.js +31 -223
- package/dist/src/core/repo-structure/repo-id-generator.js.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +12 -46
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/sync/sync-coordinator.d.ts +5 -0
- package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
- package/dist/src/sync/sync-coordinator.js +104 -6
- package/dist/src/sync/sync-coordinator.js.map +1 -1
- package/dist/src/utils/multi-repo-detector.d.ts +85 -0
- package/dist/src/utils/multi-repo-detector.d.ts.map +1 -0
- package/dist/src/utils/multi-repo-detector.js +264 -0
- package/dist/src/utils/multi-repo-detector.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/agents/pm/AGENT.md +178 -0
- package/plugins/specweave/agents/test-aware-planner/AGENT.md +54 -0
- package/plugins/specweave/commands/specweave-increment.md +30 -0
- package/plugins/specweave/commands/specweave-save.md +838 -0
- package/plugins/specweave/hooks/hooks.json +12 -0
- package/plugins/specweave/hooks/lib/update-status-line.sh +9 -1
- package/plugins/specweave/hooks/post-increment-completion.sh +4 -3
- package/plugins/specweave/hooks/post-increment-planning.sh +95 -51
- package/plugins/specweave/hooks/post-metadata-change.sh +18 -4
- package/plugins/specweave/hooks/pre-task-completion-edit.sh +355 -0
- package/plugins/specweave/lib/hooks/sync-living-docs.js +43 -0
- package/plugins/specweave/skills/increment-planner/SKILL.md +252 -2
- package/plugins/specweave/skills/spec-generator/SKILL.md +163 -0
- package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +286 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +18 -0
- package/plugins/specweave-infrastructure/skills/hetzner-provisioner/README.md +1 -1
- package/plugins/specweave-release/commands/specweave-release-npm.md +14 -22
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +27 -0
|
@@ -4,6 +4,149 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { select } from '@inquirer/prompts';
|
|
7
|
+
/**
|
|
8
|
+
* Get translated strings for repository setup
|
|
9
|
+
*/
|
|
10
|
+
function getRepoStrings(language) {
|
|
11
|
+
const strings = {
|
|
12
|
+
en: {
|
|
13
|
+
header: '📦 Repository Hosting',
|
|
14
|
+
ciAutoDetected: 'CI mode: Auto-detected',
|
|
15
|
+
structureQuestion: 'What is your repository structure?',
|
|
16
|
+
structureSingle: 'single - One repository (monorepo or standard project)',
|
|
17
|
+
structureMultiple: 'multiple - Multiple repos (microservices, EDA, parent/child)',
|
|
18
|
+
providerQuestion: 'Which Git provider do you use?',
|
|
19
|
+
github: 'GitHub',
|
|
20
|
+
githubDetected: '(detected)',
|
|
21
|
+
githubRecommended: '(recommended)',
|
|
22
|
+
bitbucket: 'Bitbucket',
|
|
23
|
+
ado: 'Azure DevOps',
|
|
24
|
+
local: 'Local (no remote)',
|
|
25
|
+
other: 'Other (GitLab, etc - coming soon)',
|
|
26
|
+
},
|
|
27
|
+
ru: {
|
|
28
|
+
header: '📦 Хостинг репозитория',
|
|
29
|
+
ciAutoDetected: 'CI режим: Автоопределено',
|
|
30
|
+
structureQuestion: 'Какова структура вашего репозитория?',
|
|
31
|
+
structureSingle: 'single - Один репозиторий (монорепо или стандартный проект)',
|
|
32
|
+
structureMultiple: 'multiple - Несколько репо (микросервисы, EDA, родитель/потомок)',
|
|
33
|
+
providerQuestion: 'Какой Git-провайдер вы используете?',
|
|
34
|
+
github: 'GitHub',
|
|
35
|
+
githubDetected: '(обнаружен)',
|
|
36
|
+
githubRecommended: '(рекомендуется)',
|
|
37
|
+
bitbucket: 'Bitbucket',
|
|
38
|
+
ado: 'Azure DevOps',
|
|
39
|
+
local: 'Локально (без remote)',
|
|
40
|
+
other: 'Другой (GitLab и т.д. - скоро)',
|
|
41
|
+
},
|
|
42
|
+
es: {
|
|
43
|
+
header: '📦 Alojamiento del repositorio',
|
|
44
|
+
ciAutoDetected: 'Modo CI: Detectado automáticamente',
|
|
45
|
+
structureQuestion: '¿Cuál es la estructura de su repositorio?',
|
|
46
|
+
structureSingle: 'single - Un repositorio (monorepo o proyecto estándar)',
|
|
47
|
+
structureMultiple: 'multiple - Múltiples repos (microservicios, EDA, padre/hijo)',
|
|
48
|
+
providerQuestion: '¿Qué proveedor de Git usa?',
|
|
49
|
+
github: 'GitHub',
|
|
50
|
+
githubDetected: '(detectado)',
|
|
51
|
+
githubRecommended: '(recomendado)',
|
|
52
|
+
bitbucket: 'Bitbucket',
|
|
53
|
+
ado: 'Azure DevOps',
|
|
54
|
+
local: 'Local (sin remoto)',
|
|
55
|
+
other: 'Otro (GitLab, etc - próximamente)',
|
|
56
|
+
},
|
|
57
|
+
zh: {
|
|
58
|
+
header: '📦 仓库托管',
|
|
59
|
+
ciAutoDetected: 'CI 模式:自动检测',
|
|
60
|
+
structureQuestion: '您的仓库结构是什么?',
|
|
61
|
+
structureSingle: 'single - 单个仓库(单体仓库或标准项目)',
|
|
62
|
+
structureMultiple: 'multiple - 多个仓库(微服务、EDA、父/子)',
|
|
63
|
+
providerQuestion: '您使用哪个 Git 提供商?',
|
|
64
|
+
github: 'GitHub',
|
|
65
|
+
githubDetected: '(已检测)',
|
|
66
|
+
githubRecommended: '(推荐)',
|
|
67
|
+
bitbucket: 'Bitbucket',
|
|
68
|
+
ado: 'Azure DevOps',
|
|
69
|
+
local: '本地(无远程)',
|
|
70
|
+
other: '其他(GitLab 等 - 即将推出)',
|
|
71
|
+
},
|
|
72
|
+
de: {
|
|
73
|
+
header: '📦 Repository-Hosting',
|
|
74
|
+
ciAutoDetected: 'CI-Modus: Automatisch erkannt',
|
|
75
|
+
structureQuestion: 'Wie ist Ihre Repository-Struktur?',
|
|
76
|
+
structureSingle: 'single - Ein Repository (Monorepo oder Standardprojekt)',
|
|
77
|
+
structureMultiple: 'multiple - Mehrere Repos (Microservices, EDA, Parent/Child)',
|
|
78
|
+
providerQuestion: 'Welchen Git-Anbieter verwenden Sie?',
|
|
79
|
+
github: 'GitHub',
|
|
80
|
+
githubDetected: '(erkannt)',
|
|
81
|
+
githubRecommended: '(empfohlen)',
|
|
82
|
+
bitbucket: 'Bitbucket',
|
|
83
|
+
ado: 'Azure DevOps',
|
|
84
|
+
local: 'Lokal (kein Remote)',
|
|
85
|
+
other: 'Andere (GitLab, etc - kommt bald)',
|
|
86
|
+
},
|
|
87
|
+
fr: {
|
|
88
|
+
header: '📦 Hébergement du dépôt',
|
|
89
|
+
ciAutoDetected: 'Mode CI: Détecté automatiquement',
|
|
90
|
+
structureQuestion: 'Quelle est la structure de votre dépôt?',
|
|
91
|
+
structureSingle: 'single - Un dépôt (monorepo ou projet standard)',
|
|
92
|
+
structureMultiple: 'multiple - Plusieurs dépôts (microservices, EDA, parent/enfant)',
|
|
93
|
+
providerQuestion: 'Quel fournisseur Git utilisez-vous?',
|
|
94
|
+
github: 'GitHub',
|
|
95
|
+
githubDetected: '(détecté)',
|
|
96
|
+
githubRecommended: '(recommandé)',
|
|
97
|
+
bitbucket: 'Bitbucket',
|
|
98
|
+
ado: 'Azure DevOps',
|
|
99
|
+
local: 'Local (pas de remote)',
|
|
100
|
+
other: 'Autre (GitLab, etc - bientôt)',
|
|
101
|
+
},
|
|
102
|
+
ja: {
|
|
103
|
+
header: '📦 リポジトリホスティング',
|
|
104
|
+
ciAutoDetected: 'CIモード:自動検出',
|
|
105
|
+
structureQuestion: 'リポジトリの構造は?',
|
|
106
|
+
structureSingle: 'single - 1つのリポジトリ(モノレポまたは標準プロジェクト)',
|
|
107
|
+
structureMultiple: 'multiple - 複数のリポジトリ(マイクロサービス、EDA、親/子)',
|
|
108
|
+
providerQuestion: 'どのGitプロバイダーを使用していますか?',
|
|
109
|
+
github: 'GitHub',
|
|
110
|
+
githubDetected: '(検出済み)',
|
|
111
|
+
githubRecommended: '(推奨)',
|
|
112
|
+
bitbucket: 'Bitbucket',
|
|
113
|
+
ado: 'Azure DevOps',
|
|
114
|
+
local: 'ローカル(リモートなし)',
|
|
115
|
+
other: 'その他(GitLabなど - 近日公開)',
|
|
116
|
+
},
|
|
117
|
+
ko: {
|
|
118
|
+
header: '📦 저장소 호스팅',
|
|
119
|
+
ciAutoDetected: 'CI 모드: 자동 감지됨',
|
|
120
|
+
structureQuestion: '저장소 구조는 무엇입니까?',
|
|
121
|
+
structureSingle: 'single - 하나의 저장소 (모노레포 또는 표준 프로젝트)',
|
|
122
|
+
structureMultiple: 'multiple - 여러 저장소 (마이크로서비스, EDA, 부모/자식)',
|
|
123
|
+
providerQuestion: '어떤 Git 제공자를 사용하시나요?',
|
|
124
|
+
github: 'GitHub',
|
|
125
|
+
githubDetected: '(감지됨)',
|
|
126
|
+
githubRecommended: '(권장)',
|
|
127
|
+
bitbucket: 'Bitbucket',
|
|
128
|
+
ado: 'Azure DevOps',
|
|
129
|
+
local: '로컬 (원격 없음)',
|
|
130
|
+
other: '기타 (GitLab 등 - 곧 출시)',
|
|
131
|
+
},
|
|
132
|
+
pt: {
|
|
133
|
+
header: '📦 Hospedagem do repositório',
|
|
134
|
+
ciAutoDetected: 'Modo CI: Detectado automaticamente',
|
|
135
|
+
structureQuestion: 'Qual é a estrutura do seu repositório?',
|
|
136
|
+
structureSingle: 'single - Um repositório (monorepo ou projeto padrão)',
|
|
137
|
+
structureMultiple: 'multiple - Múltiplos repos (microsserviços, EDA, pai/filho)',
|
|
138
|
+
providerQuestion: 'Qual provedor Git você usa?',
|
|
139
|
+
github: 'GitHub',
|
|
140
|
+
githubDetected: '(detectado)',
|
|
141
|
+
githubRecommended: '(recomendado)',
|
|
142
|
+
bitbucket: 'Bitbucket',
|
|
143
|
+
ado: 'Azure DevOps',
|
|
144
|
+
local: 'Local (sem remoto)',
|
|
145
|
+
other: 'Outro (GitLab, etc - em breve)',
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
return strings[language] || strings.en;
|
|
149
|
+
}
|
|
7
150
|
/**
|
|
8
151
|
* Prompt user for repository hosting configuration
|
|
9
152
|
*
|
|
@@ -11,28 +154,29 @@ import { select } from '@inquirer/prompts';
|
|
|
11
154
|
* @returns Repository configuration
|
|
12
155
|
*/
|
|
13
156
|
export async function setupRepositoryHosting(options) {
|
|
14
|
-
const { isCI, gitHubRemote } = options;
|
|
157
|
+
const { isCI, gitHubRemote, language = 'en' } = options;
|
|
158
|
+
const strings = getRepoStrings(language);
|
|
15
159
|
console.log('');
|
|
16
|
-
console.log(chalk.cyan.bold(
|
|
160
|
+
console.log(chalk.cyan.bold(strings.header));
|
|
17
161
|
console.log('');
|
|
18
162
|
let repositoryHosting = 'github-single';
|
|
19
163
|
let isMultiRepo = false;
|
|
20
164
|
if (isCI) {
|
|
21
165
|
// CI mode: auto-detect
|
|
22
166
|
repositoryHosting = gitHubRemote ? 'github-single' : 'local';
|
|
23
|
-
console.log(chalk.gray(` →
|
|
167
|
+
console.log(chalk.gray(` → ${strings.ciAutoDetected} ${repositoryHosting} hosting\n`));
|
|
24
168
|
return { hosting: repositoryHosting, isMultiRepo: false };
|
|
25
169
|
}
|
|
26
170
|
// Step 1: Ask about repository structure
|
|
27
171
|
const structure = await select({
|
|
28
|
-
message:
|
|
172
|
+
message: strings.structureQuestion,
|
|
29
173
|
choices: [
|
|
30
174
|
{
|
|
31
|
-
name:
|
|
175
|
+
name: strings.structureSingle,
|
|
32
176
|
value: 'single'
|
|
33
177
|
},
|
|
34
178
|
{
|
|
35
|
-
name:
|
|
179
|
+
name: strings.structureMultiple,
|
|
36
180
|
value: 'multirepo'
|
|
37
181
|
}
|
|
38
182
|
],
|
|
@@ -41,26 +185,26 @@ export async function setupRepositoryHosting(options) {
|
|
|
41
185
|
isMultiRepo = structure === 'multirepo';
|
|
42
186
|
// Step 2: Ask about git provider
|
|
43
187
|
const provider = await select({
|
|
44
|
-
message:
|
|
188
|
+
message: strings.providerQuestion,
|
|
45
189
|
choices: [
|
|
46
190
|
{
|
|
47
|
-
name: `🐙
|
|
191
|
+
name: `🐙 ${strings.github} ${gitHubRemote ? strings.githubDetected : strings.githubRecommended}`,
|
|
48
192
|
value: 'github'
|
|
49
193
|
},
|
|
50
194
|
{
|
|
51
|
-
name:
|
|
195
|
+
name: `🪣 ${strings.bitbucket}`,
|
|
52
196
|
value: 'bitbucket'
|
|
53
197
|
},
|
|
54
198
|
{
|
|
55
|
-
name:
|
|
199
|
+
name: `🔷 ${strings.ado}`,
|
|
56
200
|
value: 'ado'
|
|
57
201
|
},
|
|
58
202
|
{
|
|
59
|
-
name:
|
|
203
|
+
name: `💻 ${strings.local}`,
|
|
60
204
|
value: 'local'
|
|
61
205
|
},
|
|
62
206
|
{
|
|
63
|
-
name:
|
|
207
|
+
name: `🔧 ${strings.other}`,
|
|
64
208
|
value: 'other'
|
|
65
209
|
}
|
|
66
210
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-setup.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/repository-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"repository-setup.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/repository-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translation configuration prompts
|
|
3
|
+
*
|
|
4
|
+
* NOTE: Language selection is now in language-selection.ts (asked first)
|
|
5
|
+
* This module only handles auto-translation scope configuration.
|
|
6
|
+
*
|
|
7
|
+
* CRITICAL: User MUST be asked before enabling translation
|
|
8
|
+
* Translation can ~2x token usage (significant cost impact)
|
|
9
|
+
*
|
|
10
|
+
* @module cli/helpers/init/translation-config
|
|
11
|
+
*/
|
|
12
|
+
import type { SupportedLanguage } from '../../../core/i18n/types.js';
|
|
13
|
+
import type { LanguageSelectionResult } from './language-selection.js';
|
|
14
|
+
/**
|
|
15
|
+
* Translation scope - what gets auto-translated
|
|
16
|
+
*/
|
|
17
|
+
export interface TranslationScope {
|
|
18
|
+
/** Auto-translate spec.md, plan.md, tasks.md after creation */
|
|
19
|
+
incrementSpecs: boolean;
|
|
20
|
+
/** Auto-translate living docs on update */
|
|
21
|
+
livingDocs: boolean;
|
|
22
|
+
/** Auto-translate GitHub/JIRA/ADO issues on sync */
|
|
23
|
+
externalSync: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Result of translation configuration prompts
|
|
27
|
+
*/
|
|
28
|
+
export interface TranslationConfigResult {
|
|
29
|
+
language: SupportedLanguage;
|
|
30
|
+
translationEnabled: boolean;
|
|
31
|
+
translationScope: TranslationScope;
|
|
32
|
+
keepEnglishOriginals: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Prompt user for translation configuration
|
|
36
|
+
*
|
|
37
|
+
* NOTE: Language is already selected in language-selection.ts
|
|
38
|
+
* This only handles auto-translation scope configuration.
|
|
39
|
+
*
|
|
40
|
+
* CRITICAL: Shows cost warning before enabling translation
|
|
41
|
+
* User must explicitly opt-in to translation (default: disabled)
|
|
42
|
+
*
|
|
43
|
+
* @param languageResult - Result from language selection (language + bilingual preference)
|
|
44
|
+
* @returns Translation configuration result
|
|
45
|
+
*/
|
|
46
|
+
export declare function promptTranslationConfig(languageResult?: LanguageSelectionResult): Promise<TranslationConfigResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Update config.json with translation configuration
|
|
49
|
+
*
|
|
50
|
+
* @param targetDir - Project directory
|
|
51
|
+
* @param config - Translation configuration result
|
|
52
|
+
*/
|
|
53
|
+
export declare function updateConfigWithTranslation(targetDir: string, config: TranslationConfigResult): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get translation configuration for CI/non-interactive mode
|
|
56
|
+
*
|
|
57
|
+
* @param language - Language code from CLI options
|
|
58
|
+
* @returns Default translation configuration (disabled)
|
|
59
|
+
*/
|
|
60
|
+
export declare function getDefaultTranslationConfig(language?: SupportedLanguage): TranslationConfigResult;
|
|
61
|
+
//# sourceMappingURL=translation-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation-config.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/translation-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,cAAc,EAAE,OAAO,CAAC;IACxB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AA2SD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,CAAC,EAAE,uBAAuB,GACvC,OAAO,CAAC,uBAAuB,CAAC,CAuGlC;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,GAC9B,IAAI,CAyBN;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,iBAAwB,GAAG,uBAAuB,CAOvG"}
|