@tiqora/tiqora 0.0.4-dev → 0.0.6-dev

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.
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
12
12
  <step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
13
13
  <step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
14
14
  <step n="4">Merge effective config as profile (base) + project (override).</step>
15
- <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Francais, document_language=English.</step>
15
+ <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
16
16
  <step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
17
- <step n="7">Communicate in communication_language. Generate artifacts in document_language unless user asks otherwise.</step>
17
+ <step n="7">Communicate in communication_language. Generate PM documents and reports (Jira, MR Report) in document_language. Keep internal artifacts (runs, challenge) in English.</step>
18
18
  <step n="8">Do not start coding from chat only. Route delivery execution through a workflow command.</step>
19
19
  <step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
20
20
  <step n="10">Apply operational reflexes by default for delivery work: PM MCP context, branch creation/switching, MR preparation, and sync queue handling.</step>
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
12
12
  <step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
13
13
  <step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
14
14
  <step n="4">Merge effective config as profile (base) + project (override).</step>
15
- <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Francais, document_language=English.</step>
15
+ <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
16
16
  <step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
17
- <step n="7">Communicate in communication_language. Generate artifacts in document_language unless user asks otherwise.</step>
17
+ <step n="7">Communicate in communication_language. Generate PM documents in document_language. Keep internal artifacts in English.</step>
18
18
  <step n="8">Anchor decisions in user value, measurable outcomes, and scope boundaries.</step>
19
19
  <step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
20
20
  <step n="10">Apply operational reflexes for product delivery: MCP ticket creation/update, branch naming alignment, MR acceptance quality, and sync fallback.</step>
@@ -12,9 +12,9 @@ You must fully embody this agent persona and follow activation rules exactly.
12
12
  <step n="2">Load project config from {project-root}/.tiqora.yaml (required).</step>
13
13
  <step n="3">Load profile config from ~/.tiqora/config.yaml when available (optional).</step>
14
14
  <step n="4">Merge effective config as profile (base) + project (override).</step>
15
- <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Francais, document_language=English.</step>
15
+ <step n="5">Apply defaults when missing: user_name=Developer, idle_threshold_minutes=15, communication_language=Français, document_language=English.</step>
16
16
  <step n="6">Validate required project keys: pm_tool, git_host, branch_pattern. If missing, halt with a blocking error.</step>
17
- <step n="7">Communicate in communication_language. Keep outputs checklist-oriented and execution-focused.</step>
17
+ <step n="7">Communicate in communication_language. Generate PM documents in document_language. Keep internal artifacts in English.</step>
18
18
  <step n="8">Do not implement code directly. Route development work to /tiq:workflow:dev-story.</step>
19
19
  <step n="9">When a menu item has workflow="path/to/workflow.yaml": always load {project-root}/_tiqora/core/tasks/workflow.xml, pass workflow-config, then execute all steps in order. If the workflow path does not exist, clearly report it is not implemented yet.</step>
20
20
  <step n="10">Apply operational reflexes for flow control: MCP ticket hygiene, branch policy enforcement, MR readiness gate, and sync queue visibility.</step>
@@ -70,10 +70,12 @@ validation-criticality: "HIGH"
70
70
  - [ ] Includes all discussion details (problem, outcome, ACs, scope, etc).
71
71
  - [ ] Includes metadata (pm_tool, git_host, document_language, created_at).
72
72
 
73
- ## 9) Communication
73
+ ## 9) Communication and Languages
74
74
 
75
- - [ ] Conversation in `communication_language` (natural).
76
- - [ ] Story document in ENGLISH (clarity for dev).
75
+ - [ ] Conversation with user in `communication_language` (from config).
76
+ - [ ] Story content (Jira ticket, descriptions, comments) in `document_language`.
77
+ - [ ] Internal JSON artifacts (.tiqora/ files) in ENGLISH (agent performance).
78
+ - [ ] Commits in ENGLISH (dev standard).
77
79
  - [ ] Clear next steps offered (dev-story, view, etc).
78
80
 
79
81
  ## Final Result
@@ -2,8 +2,9 @@
2
2
  <critical>The workflow execution engine is governed by: {project-root}/_tiqora/core/tasks/workflow.xml</critical>
3
3
  <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
4
4
  <critical>YOU MUST ALWAYS SPEAK OUTPUT in the configured communication_language resolved from merged tiqora config.</critical>
5
- <critical>This is a CONVERSATIONAL workflow, not a form. Have a natural discussion with the user.</critical>
6
- <critical>Generate story artifact in ENGLISH for clarity, but the conversation is in communication_language.</critical>
5
+ <critical>Generate all PM-facing content (Jira ticket, descriptions, comments) in {{document_language}}.</critical>
6
+ <critical>Keep internal data files (.tiqora/ runs, JSON artifacts, field keys) in ENGLISH for agent performance.</critical>
7
+ <critical>Commits are ALWAYS in ENGLISH (dev standard). This is non-negotiable.</critical>
7
8
  <critical>Execute ALL steps in exact order; do NOT skip steps.</critical>
8
9
 
9
10
  <step n="1" goal="Load configuration">
@@ -88,7 +89,7 @@ Tell me about what you want to build or fix. What's the idea?</ask>
88
89
  - Make it clear and searchable
89
90
  </action>
90
91
 
91
- <action>Generate story description (ENGLISH) as a clean summary of our conversation:
92
+ <action>Generate story description in {{document_language}} as a clean summary of our conversation:
92
93
  "## Problem Statement
93
94
 
94
95
  {{problem_statement}}
@@ -201,7 +202,7 @@ Choose:
201
202
  - created_at timestamp
202
203
  - status: "created_in_jira"
203
204
  </action>
204
- <action if="pm_tool is not none">Post creation comment to Jira issue (ENGLISH):
205
+ <action if="pm_tool is not none">Post creation comment to Jira issue in {{document_language}}:
205
206
  "✓ Story created via Tiqora create-story workflow
206
207
 
207
208
  Ready for:
@@ -94,8 +94,10 @@ validation-criticality: "HIGHEST"
94
94
  ## 10) Communication and Languages
95
95
 
96
96
  - [ ] User-facing communication in `communication_language` (from config).
97
- - [ ] Technical artifacts (challenge, implementation) in ENGLISH for clarity.
98
- - [ ] Reports (MR Report, daily, retrospective) in `document_language` for team.
97
+ - [ ] Technical agent artifacts (challenge.md, implementation notes) in ENGLISH for agent performance.
98
+ - [ ] PM-facing content (Jira comments, MR Report) in `document_language`.
99
+ - [ ] Internal data files (.tiqora/ runs, JSON) in ENGLISH (agent performance).
100
+ - [ ] Commits in ENGLISH (dev standard).
99
101
  - [ ] Output concise; no unnecessary internal execution noise.
100
102
 
101
103
  ## 11) Final Artifact Structure
@@ -2,8 +2,9 @@
2
2
  <critical>The workflow execution engine is governed by: {project-root}/_tiqora/core/tasks/workflow.xml</critical>
3
3
  <critical>You MUST have already loaded and processed: {installed_path}/workflow.yaml</critical>
4
4
  <critical>YOU MUST ALWAYS SPEAK OUTPUT in the configured communication_language resolved from merged tiqora config.</critical>
5
- <critical>Generate technical artifacts (challenge, implementation, validation) in ENGLISH for clarity.</critical>
6
- <critical>Generate developer-facing reports (MR Report, Daily, Retrospective) in document_language from config.</critical>
5
+ <critical>Generate technical agent artifacts (challenge.md, implementation notes, validation) in ENGLISH for agent performance.</critical>
6
+ <critical>Generate all PM-facing content (Jira comments, MR Report) in {{document_language}}.</critical>
7
+ <critical>Commits are ALWAYS in ENGLISH (dev standard). This is non-negotiable.</critical>
7
8
  <critical>Execute ALL steps in exact order; do NOT skip steps.</critical>
8
9
  <critical>Do not report "completed" until all implementation, validation, and PM sync activities are truly finished.</critical>
9
10
 
@@ -95,7 +96,7 @@
95
96
  </check>
96
97
 
97
98
  <check if="ticket is clear and challenge passes">
98
- <action if="pm_tool is not none and ticket was retrieved">Post challenge summary comment on ticket (ENGLISH):
99
+ <action if="pm_tool is not none and ticket was retrieved">Post challenge summary comment on ticket in {{document_language}}:
99
100
  "✓ Challenge Gate PASSED
100
101
  - Scope: [1-2 sentences on what will be built]
101
102
  - Approach: [1-2 sentences on technical direction]
@@ -160,71 +161,92 @@
160
161
  Fixes {{ticketId}}"
161
162
  </action>
162
163
 
164
+ <action>Push branch to remote immediately after commit: git push -u origin {{branchName}}</action>
165
+
163
166
  <action>Update run state: mark implementation_completed_at timestamp.</action>
164
167
 
165
168
  <output>[WORKFLOW] ✓ Implementation complete | Changes committed to {{branchName}}</output>
166
169
  </step>
167
170
 
168
171
  <step n="7" goal="Generate MR Report and request developer validation">
169
- <critical>MR Report is mandatory and must be validated by the developer before pushing.</critical>
172
+ <critical>MR Report is MANDATORY. Create file, display to developer, and get explicit approval before proceeding.</critical>
170
173
 
171
- <action>Analyze git diff from branch_base..HEAD to understand all changes made.</action>
174
+ <action>STEP 7.1: Analyze all changes made since branch creation.
175
+ 1. Run: git diff {{branch_base}}..HEAD
176
+ 2. Identify all modified files
177
+ 3. Note test additions/modifications
178
+ 4. Understand the overall implementation scope
179
+ </action>
172
180
 
173
- <action>Generate MR Report at {workflow_runs_dir}/{{runId}}-mr-report.md in {{document_language}} with sections:
181
+ <action>STEP 7.2: Generate comprehensive MR Report content in {{document_language}}.
182
+ Use git diff analysis to fill in concrete details for each section:
174
183
 
175
- **Title**: [Brief summary of what was implemented]
184
+ **Title**: [Brief summary of what was implemented, extracted from commit message and challenge scope]
176
185
 
177
186
  **Description**:
178
- [1-2 paragraphs explaining the feature/fix and its purpose]
187
+ [1-2 paragraphs: What problem does this solve? What was implemented? Why this approach?]
179
188
 
180
189
  **Technical Choices**:
181
- - [Key architecture decision 1 and why]
182
- - [Key architecture decision 2 and why]
183
- - [Any libraries/tools introduced and justification]
190
+ - [Key decision 1 with justification]
191
+ - [Key decision 2 with justification]
192
+ - [Libraries/tools introduced and why]
184
193
 
185
- **Changes Made**:
186
- - [File path 1]: [What was changed and why]
187
- - [File path 2]: [What was changed and why]
188
- [List all significant changes]
194
+ **Changes Made** (from git diff):
195
+ - [File 1]: [What changed and why]
196
+ - [File 2]: [What changed and why]
197
+ [List ALL significant files changed]
189
198
 
190
199
  **Testing**:
191
- - Unit tests: [Where, what's tested]
192
- - Integration tests: [Where, what's tested]
193
- - Manual testing steps: [How to verify this works]
200
+ - Unit tests: [List files and what they test]
201
+ - Integration tests: [If applicable]
202
+ - Manual testing: [Step-by-step verification instructions]
194
203
 
195
204
  **How to Run**:
196
- 1. [Prerequisites/setup steps]
197
- 2. [Build/install command if needed]
198
- 3. [Running the feature/fix]
205
+ 1. [Setup prerequisites]
206
+ 2. [Build command]
207
+ 3. [Run command to demonstrate feature]
199
208
  4. [Expected output/behavior]
200
209
 
201
210
  **Deployment Notes**:
202
- - [Any database migrations? Yes/No]
203
- - [Any environment variables needed? List]
204
- - [Breaking changes? Yes/No, describe]
205
- - [Rollback plan if needed]
211
+ - Migrations: [Yes/No - describe if yes]
212
+ - Environment variables: [List if any]
213
+ - Breaking changes: [Yes/No - describe if yes]
214
+ - Rollback plan: [How to rollback if needed]
206
215
 
207
216
  **Reviewed By**: [Developer name]
208
- **Reviewed At**: [Timestamp]
217
+ **Reviewed At**: [Current timestamp]
209
218
  </action>
210
219
 
211
- <action>Display the generated MR Report to the developer and ask for validation.</action>
220
+ <action>STEP 7.3: WRITE the MR Report file to {workflow_runs_dir}/{{runId}}-mr-report.md with the generated content.</action>
221
+
222
+ <action>STEP 7.4: Display the MR Report to the developer and ask for explicit validation.</action>
212
223
 
213
- <ask>MR Report generated. Please review and validate:
214
- [ ] Are technical choices explained clearly?
215
- [ ] Are testing instructions complete and accurate?
216
- [ ] Are deployment notes accurate?
224
+ <ask>✓ MR Report generated and saved to: {workflow_runs_dir}/{{runId}}-mr-report.md
217
225
 
218
- Choose: (approve/edit/regenerate)</ask>
226
+ Please review carefully:
227
+ - [ ] Title and description accurately reflect the work?
228
+ - [ ] All files changed are documented?
229
+ - [ ] Testing instructions are clear and complete?
230
+ - [ ] Deployment notes are accurate?
219
231
 
220
- <check if="developer chooses edit or regenerate">
221
- <action>If edit: Display prompt for developer to provide modifications. Apply changes to the report file.
222
- If regenerate: Re-run the MR Report generation with developer guidance.</action>
232
+ What would you like to do? (approve/edit/regenerate)</ask>
233
+
234
+ <check if="developer chooses edit">
235
+ <action>Ask developer what needs to be changed in the report.</action>
236
+ <action>Apply the requested edits to the MR Report file.</action>
237
+ <action>Display updated report and re-ask for validation.</action>
223
238
  </check>
224
239
 
225
- <action>Once approved, mark run state: mr_report_approved_at = now.</action>
240
+ <check if="developer chooses regenerate">
241
+ <action>Ask developer for guidance on what should be different.</action>
242
+ <action>Re-generate MR Report with new guidance and save to file.</action>
243
+ <action>Display updated report and re-ask for validation.</action>
244
+ </check>
226
245
 
227
- <output>[WORKFLOW] MR Report validated</output>
246
+ <check if="developer chooses approve">
247
+ <action>STEP 7.5: Mark run state: mr_report_approved_at = now, mr_report_path = {workflow_runs_dir}/{{runId}}-mr-report.md</action>
248
+ <output>[WORKFLOW] ✓ MR Report approved and saved</output>
249
+ </check>
228
250
  </step>
229
251
 
230
252
  <step n="8" goal="Validate definition of done checklist">
@@ -244,17 +266,33 @@
244
266
  Store as {{total_worklog_minutes}}.
245
267
  </action>
246
268
 
247
- <!-- STEP 9.2: Create/Push MR -->
248
- <action>Push branch to remote: git push -u origin {{branchName}}</action>
249
-
250
- <action>Create MR/PR in {{git_host}}:
251
- - Title: "[{{ticketId}}] " + [MR Report title]
252
- - Description: [MR Report content from step 7]
253
- - Link to challenge artifact: {workflow_steps_dir}/{{runId}}-challenge.md
254
- - Link to implementation notes: available in branch
269
+ <!-- STEP 9.2: Create MR (branch already pushed in step 6) -->
270
+ <action>STEP 9.2a: Attempt to create MR/PR in {{git_host}} using available tools:
271
+ - If {{git_host}} == "github": Use GitHub CLI (gh pr create) or GitHub API MCP if available
272
+ - If {{git_host}} == "gitlab": Use GitLab CLI (gitlab) or GitLab API MCP if available
273
+ - If {{git_host}} == "gitea": Use Gitea API or CLI if available
274
+ - MR/PR Details:
275
+ * Title: "[{{ticketId}}] " + [MR Report title from step 7]
276
+ * Description: [Full MR Report content from {workflow_runs_dir}/{{runId}}-mr-report.md]
277
+ * Target branch: {{branch_base}} (usually main/master)
278
+ * Source branch: {{branchName}}
255
279
  </action>
256
280
 
257
- <action>Capture MR/PR URL as {{mr_url}} for Jira comment.</action>
281
+ <check if="MR/PR creation succeeds via CLI or MCP">
282
+ <action>Capture MR/PR URL as {{mr_url}}.</action>
283
+ </check>
284
+
285
+ <check if="MR/PR creation fails or no tools available">
286
+ <action>STEP 9.2b (Fallback): Generate MR/PR draft template for manual creation.
287
+ 1. Create {workflow_runs_dir}/{{runId}}-mr-draft.md with:
288
+ - MR URL template: https://gitlab.com/{{project}}/{{repo}}/-/merge_requests/new?merge_request[source_branch]={{branchName}}&merge_request[target_branch]={{branch_base}}
289
+ - Pre-filled MR details (title, description from MR Report)
290
+ - Instructions: "Copy the content below into GitLab to create the MR manually"
291
+ 2. Display to user: "⚠️ MR/PR cannot be created automatically. Here's a draft for manual creation:"
292
+ 3. Ask user to create MR manually and provide the URL when done.
293
+ 4. Once user provides URL, capture as {{mr_url}}.
294
+ </action>
295
+ </check>
258
296
 
259
297
  <!-- STEP 9.3: Transition Jira to Review -->
260
298
  <action if="pm_tool is not none and ticket was retrieved">
@@ -263,7 +301,7 @@
263
301
 
264
302
  <!-- STEP 9.4: Push Final Jira Sync -->
265
303
  <action if="pm_tool is not none and ticket was retrieved">
266
- Add final completion comment to ticket (ENGLISH):
304
+ Add final completion comment to ticket in {{document_language}}:
267
305
  "✓ IMPLEMENTATION COMPLETE
268
306
 
269
307
  Branch: {{branchName}}
package/dist/index.cjs CHANGED
@@ -663,8 +663,8 @@ var import_node_os2 = require("os");
663
663
  var import_node_path4 = require("path");
664
664
  var DEFAULT_IDLE_THRESHOLD_MINUTES = 15;
665
665
  var DEFAULT_USER_NAME = "Developer";
666
- var DEFAULT_COMMUNICATION_LANGUAGE = "fr";
667
- var DEFAULT_DOCUMENT_LANGUAGE = "fr";
666
+ var DEFAULT_COMMUNICATION_LANGUAGE = "Fran\xE7ais";
667
+ var DEFAULT_DOCUMENT_LANGUAGE = "English";
668
668
  var PROJECT_INIT_CONFIG_FILE = ".tiqora.yaml";
669
669
  var GLOBAL_USER_CONFIG_FILE = ".tiqora/config.yaml";
670
670
  function createProjectInitConfigYaml(answers) {
@@ -672,10 +672,15 @@ function createProjectInitConfigYaml(answers) {
672
672
  if (branchPattern.length === 0) {
673
673
  throw new Error("Branch pattern cannot be empty.");
674
674
  }
675
+ const documentLanguage = normalizeLanguageValue(
676
+ answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
677
+ "document_language"
678
+ );
675
679
  const lines = [
676
680
  `pm_tool: ${answers.pmTool}`,
677
681
  `git_host: ${answers.gitHost}`,
678
- `branch_pattern: '${escapeSingleQuotes(branchPattern)}'`
682
+ `branch_pattern: '${escapeSingleQuotes(branchPattern)}'`,
683
+ `document_language: '${escapeSingleQuotes(documentLanguage)}'`
679
684
  ];
680
685
  if (answers.pmTool === "jira") {
681
686
  const jira = answers.jira;
@@ -707,15 +712,10 @@ function createGlobalUserConfigYaml(answers) {
707
712
  answers.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
708
713
  "communication_language"
709
714
  );
710
- const documentLanguage = normalizeLanguageValue(
711
- answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
712
- "document_language"
713
- );
714
715
  return [
715
716
  `user_name: '${escapeSingleQuotes(userName)}'`,
716
717
  `idle_threshold_minutes: ${idleThresholdMinutes}`,
717
718
  `communication_language: '${escapeSingleQuotes(communicationLanguage)}'`,
718
- `document_language: '${escapeSingleQuotes(documentLanguage)}'`,
719
719
  ""
720
720
  ].join("\n");
721
721
  }
@@ -1180,7 +1180,7 @@ async function defaultCollectInitAnswers(context) {
1180
1180
  }
1181
1181
  const branchPatternAnswer = await (0, import_prompts3.text)({
1182
1182
  message: "Branch naming pattern:",
1183
- defaultValue: context.suggestedBranchPattern,
1183
+ initialValue: context.suggestedBranchPattern,
1184
1184
  placeholder: "feature/*",
1185
1185
  validate(value) {
1186
1186
  if (value.trim().length === 0) {
@@ -1215,9 +1215,8 @@ async function defaultCollectInitAnswers(context) {
1215
1215
  return null;
1216
1216
  }
1217
1217
  const communicationLanguageAnswer = await (0, import_prompts3.text)({
1218
- message: "Agent response language:",
1219
- defaultValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
1220
- placeholder: "fr",
1218
+ message: "Agent response language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
1219
+ initialValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
1221
1220
  validate(value) {
1222
1221
  if (value.trim().length === 0) {
1223
1222
  return "Language cannot be empty.";
@@ -1230,9 +1229,8 @@ async function defaultCollectInitAnswers(context) {
1230
1229
  return null;
1231
1230
  }
1232
1231
  const documentLanguageAnswer = await (0, import_prompts3.text)({
1233
- message: "Document output language:",
1234
- defaultValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
1235
- placeholder: "fr",
1232
+ message: "Document output language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
1233
+ initialValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
1236
1234
  validate(value) {
1237
1235
  if (value.trim().length === 0) {
1238
1236
  return "Language cannot be empty.";
@@ -1299,8 +1297,8 @@ var PROJECT_CONFIG_FILE = ".tiqora.yaml";
1299
1297
  var GLOBAL_CONFIG_FILE = ".tiqora/config.yaml";
1300
1298
  var MISSING_CONFIG_ERROR_MESSAGE = "\u2717 No .tiqora.yaml found. Run npx tiqora init first.";
1301
1299
  var DEFAULT_USER_NAME2 = "Developer";
1302
- var DEFAULT_COMMUNICATION_LANGUAGE2 = "fr";
1303
- var DEFAULT_DOCUMENT_LANGUAGE2 = "fr";
1300
+ var DEFAULT_COMMUNICATION_LANGUAGE2 = "Fran\xE7ais";
1301
+ var DEFAULT_DOCUMENT_LANGUAGE2 = "English";
1304
1302
  var REQUIRED_CONFIG_KEYS = [
1305
1303
  "pm_tool",
1306
1304
  "git_host",
package/dist/index.mjs CHANGED
@@ -671,8 +671,8 @@ import { homedir as homedir2 } from "os";
671
671
  import { resolve as resolve4 } from "path";
672
672
  var DEFAULT_IDLE_THRESHOLD_MINUTES = 15;
673
673
  var DEFAULT_USER_NAME = "Developer";
674
- var DEFAULT_COMMUNICATION_LANGUAGE = "fr";
675
- var DEFAULT_DOCUMENT_LANGUAGE = "fr";
674
+ var DEFAULT_COMMUNICATION_LANGUAGE = "Fran\xE7ais";
675
+ var DEFAULT_DOCUMENT_LANGUAGE = "English";
676
676
  var PROJECT_INIT_CONFIG_FILE = ".tiqora.yaml";
677
677
  var GLOBAL_USER_CONFIG_FILE = ".tiqora/config.yaml";
678
678
  function createProjectInitConfigYaml(answers) {
@@ -680,10 +680,15 @@ function createProjectInitConfigYaml(answers) {
680
680
  if (branchPattern.length === 0) {
681
681
  throw new Error("Branch pattern cannot be empty.");
682
682
  }
683
+ const documentLanguage = normalizeLanguageValue(
684
+ answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
685
+ "document_language"
686
+ );
683
687
  const lines = [
684
688
  `pm_tool: ${answers.pmTool}`,
685
689
  `git_host: ${answers.gitHost}`,
686
- `branch_pattern: '${escapeSingleQuotes(branchPattern)}'`
690
+ `branch_pattern: '${escapeSingleQuotes(branchPattern)}'`,
691
+ `document_language: '${escapeSingleQuotes(documentLanguage)}'`
687
692
  ];
688
693
  if (answers.pmTool === "jira") {
689
694
  const jira = answers.jira;
@@ -715,15 +720,10 @@ function createGlobalUserConfigYaml(answers) {
715
720
  answers.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
716
721
  "communication_language"
717
722
  );
718
- const documentLanguage = normalizeLanguageValue(
719
- answers.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
720
- "document_language"
721
- );
722
723
  return [
723
724
  `user_name: '${escapeSingleQuotes(userName)}'`,
724
725
  `idle_threshold_minutes: ${idleThresholdMinutes}`,
725
726
  `communication_language: '${escapeSingleQuotes(communicationLanguage)}'`,
726
- `document_language: '${escapeSingleQuotes(documentLanguage)}'`,
727
727
  ""
728
728
  ].join("\n");
729
729
  }
@@ -1194,7 +1194,7 @@ async function defaultCollectInitAnswers(context) {
1194
1194
  }
1195
1195
  const branchPatternAnswer = await text2({
1196
1196
  message: "Branch naming pattern:",
1197
- defaultValue: context.suggestedBranchPattern,
1197
+ initialValue: context.suggestedBranchPattern,
1198
1198
  placeholder: "feature/*",
1199
1199
  validate(value) {
1200
1200
  if (value.trim().length === 0) {
@@ -1229,9 +1229,8 @@ async function defaultCollectInitAnswers(context) {
1229
1229
  return null;
1230
1230
  }
1231
1231
  const communicationLanguageAnswer = await text2({
1232
- message: "Agent response language:",
1233
- defaultValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
1234
- placeholder: "fr",
1232
+ message: "Agent response language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
1233
+ initialValue: context.existingConfig?.communicationLanguage ?? DEFAULT_COMMUNICATION_LANGUAGE,
1235
1234
  validate(value) {
1236
1235
  if (value.trim().length === 0) {
1237
1236
  return "Language cannot be empty.";
@@ -1244,9 +1243,8 @@ async function defaultCollectInitAnswers(context) {
1244
1243
  return null;
1245
1244
  }
1246
1245
  const documentLanguageAnswer = await text2({
1247
- message: "Document output language:",
1248
- defaultValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
1249
- placeholder: "fr",
1246
+ message: "Document output language (e.g. Fran\xE7ais, English, Espa\xF1ol):",
1247
+ initialValue: context.existingConfig?.documentLanguage ?? DEFAULT_DOCUMENT_LANGUAGE,
1250
1248
  validate(value) {
1251
1249
  if (value.trim().length === 0) {
1252
1250
  return "Language cannot be empty.";
@@ -1313,8 +1311,8 @@ var PROJECT_CONFIG_FILE = ".tiqora.yaml";
1313
1311
  var GLOBAL_CONFIG_FILE = ".tiqora/config.yaml";
1314
1312
  var MISSING_CONFIG_ERROR_MESSAGE = "\u2717 No .tiqora.yaml found. Run npx tiqora init first.";
1315
1313
  var DEFAULT_USER_NAME2 = "Developer";
1316
- var DEFAULT_COMMUNICATION_LANGUAGE2 = "fr";
1317
- var DEFAULT_DOCUMENT_LANGUAGE2 = "fr";
1314
+ var DEFAULT_COMMUNICATION_LANGUAGE2 = "Fran\xE7ais";
1315
+ var DEFAULT_DOCUMENT_LANGUAGE2 = "English";
1318
1316
  var REQUIRED_CONFIG_KEYS = [
1319
1317
  "pm_tool",
1320
1318
  "git_host",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiqora/tiqora",
3
- "version": "0.0.4-dev",
3
+ "version": "0.0.6-dev",
4
4
  "description": "Agentic delivery CLI for solo devs: challenge tickets, orchestrate PM/SM/Dev flows, and keep execution synced.",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",