trackops 2.0.5 → 2.0.6
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 +91 -61
- package/bin/trackops.js +28 -7
- package/lib/cli-format.js +118 -0
- package/lib/config.js +29 -3
- package/lib/control.js +278 -116
- package/lib/env.js +40 -28
- package/lib/i18n.js +5 -4
- package/lib/init.js +149 -41
- package/lib/opera-bootstrap.js +251 -71
- package/lib/opera.js +235 -73
- package/lib/skills.js +43 -35
- package/lib/workspace.js +32 -21
- package/locales/en.json +183 -61
- package/locales/es.json +184 -62
- package/package.json +1 -1
- package/scripts/smoke-tests.js +81 -39
- package/skills/trackops/skill.json +2 -2
package/locales/en.json
CHANGED
|
@@ -69,6 +69,16 @@
|
|
|
69
69
|
"cli.actionNotSupported": "Unsupported action: {action}",
|
|
70
70
|
"cli.mustProvideActionAndId": "You must specify action and task id.",
|
|
71
71
|
"cli.noReadyTasks": "No ready tasks. Check blockers and dependencies.",
|
|
72
|
+
"cli.noReadyTasks.blocked": "No ready tasks. There are {count} blocked task(s). Run 'trackops status' to see details.",
|
|
73
|
+
"cli.noReadyTasks.allDone": "All tasks are completed or cancelled. The project has reached operational completion.",
|
|
74
|
+
"control.circularDependency": "Warning: circular dependency detected involving task(s): {taskIds}.",
|
|
75
|
+
"control.taskAlreadyStatus": "Task '{taskId}' is already '{status}'. No changes made.",
|
|
76
|
+
"control.contractStale": "Operating contract was stale and has been revalidated.",
|
|
77
|
+
"control.docsOverwriteWarning": "Warning: {file} has manual edits and was not overwritten. Use --force to overwrite.",
|
|
78
|
+
"opera.install.bootstrapConfirm": "Start bootstrap now? [y/N]",
|
|
79
|
+
"opera.install.bootstrapSkipped": "Bootstrap was not started. Run 'trackops opera bootstrap' when you are ready.",
|
|
80
|
+
"skill.installError": "Warning: skill '{name}' could not be installed: {error}",
|
|
81
|
+
"cli.help.initFirst": "Run 'trackops init' to initialize a project here.",
|
|
72
82
|
"cli.hooksInstalled": "Git hooks installed in .githooks",
|
|
73
83
|
"cli.hooksError": "Could not configure core.hooksPath.",
|
|
74
84
|
"cli.noProjectFound": "No project_control.json found in this directory or parents.",
|
|
@@ -90,16 +100,30 @@
|
|
|
90
100
|
"cli.status.treeClean": "clean",
|
|
91
101
|
"cli.status.treeDirty": "dirty ({staged} staged, {unstaged} unstaged, {untracked} untracked)",
|
|
92
102
|
"cli.status.lastCommit": "Last commit: {hash} {subject}",
|
|
93
|
-
"cli.status.divergence": "
|
|
94
|
-
"cli.status.runtime": "Runtime: {path}",
|
|
95
|
-
"cli.status.docsSynced": "Docs synced: {status}",
|
|
96
|
-
"cli.status.docsSyncedYes": "yes",
|
|
97
|
-
"cli.status.docsSyncedNo": "no ({files})",
|
|
98
|
-
|
|
99
|
-
"cli.
|
|
100
|
-
"cli.
|
|
101
|
-
"cli.
|
|
102
|
-
"cli.
|
|
103
|
+
"cli.status.divergence": "Remote divergence: {ahead} to push, {behind} to pull",
|
|
104
|
+
"cli.status.runtime": "Runtime: {path}",
|
|
105
|
+
"cli.status.docsSynced": "Docs synced: {status}",
|
|
106
|
+
"cli.status.docsSyncedYes": "yes",
|
|
107
|
+
"cli.status.docsSyncedNo": "no ({files})",
|
|
108
|
+
"cli.status.layout": "Layout: {layout} | Workspace: {workspace}",
|
|
109
|
+
"cli.status.appRoot": "App: {path}",
|
|
110
|
+
"cli.status.opsRoot": "Ops: {path}",
|
|
111
|
+
"cli.status.bootstrapMode": "Bootstrap path: {value}",
|
|
112
|
+
"cli.status.bootstrapReason": "Why this path: {value}",
|
|
113
|
+
"cli.status.gitState": "Git: {state}",
|
|
114
|
+
"cli.status.gitNotInitialized": "not initialized",
|
|
115
|
+
"cli.status.gitAction": "Run 'git init' before relying on repository status or release flows.",
|
|
116
|
+
"cli.status.branchDetached": "detached HEAD",
|
|
117
|
+
"cli.status.noUpstream": "No upstream branch configured yet.",
|
|
118
|
+
"cli.status.envPresent": "Environment keys present: {value}",
|
|
119
|
+
"cli.status.envMissing": "Environment keys missing: {value}",
|
|
120
|
+
|
|
121
|
+
"cli.next.phase": "phase",
|
|
122
|
+
"cli.next.priority": "priority",
|
|
123
|
+
"cli.next.stream": "stream",
|
|
124
|
+
"cli.next.summary": "summary",
|
|
125
|
+
"cli.sync.dryRunWouldUpdate": "Would update: {files}",
|
|
126
|
+
"cli.sync.dryRunInSync": "All docs are already in sync.",
|
|
103
127
|
|
|
104
128
|
"cli.help.title": "Project operational control",
|
|
105
129
|
"cli.help.usage": "Usage:",
|
|
@@ -120,11 +144,13 @@
|
|
|
120
144
|
"cli.help.task.desc": "Actions: start, review, complete, block, pending, cancel, note.",
|
|
121
145
|
"cli.help.opera.desc": "Manage OPERA.",
|
|
122
146
|
"cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
|
|
123
|
-
"cli.help.locale.desc": "Show or update the global TrackOps language.",
|
|
124
|
-
"cli.help.doctor.desc": "Explain the effective language source for this machine/project.",
|
|
125
|
-
"cli.help.skill.desc": "Manage skills.",
|
|
126
|
-
"cli.help.help.desc": "Show this help.",
|
|
127
|
-
"cli.help.
|
|
147
|
+
"cli.help.locale.desc": "Show or update the global TrackOps language.",
|
|
148
|
+
"cli.help.doctor.desc": "Explain the effective language source for this machine/project.",
|
|
149
|
+
"cli.help.skill.desc": "Manage skills.",
|
|
150
|
+
"cli.help.help.desc": "Show this help.",
|
|
151
|
+
"cli.help.globalFlags": "Global flags:",
|
|
152
|
+
"cli.help.globalFlags.line1": "Use '--plain' (or '--a11y') to disable Unicode-heavy formatting for screen readers, logs, or limited terminals.",
|
|
153
|
+
"cli.help.globalWorkflow": "Global agent workflow:",
|
|
128
154
|
"cli.help.globalWorkflow.line1": "Install the skill with 'npx skills add Baxahaun/trackops' and then the runtime with 'npm install -g trackops'.",
|
|
129
155
|
"cli.help.globalWorkflow.line2": "Then verify with 'trackops --version' and use 'trackops init' and 'trackops opera install' explicitly inside each project.",
|
|
130
156
|
"cli.usage.workspace": "Usage: trackops workspace <status|migrate>",
|
|
@@ -180,13 +206,16 @@
|
|
|
180
206
|
|
|
181
207
|
"init.welcome": "Project initialized with trackops.",
|
|
182
208
|
"init.opsExists": "Ops is already installed in this project.",
|
|
183
|
-
"init.created": "Created {file}",
|
|
184
|
-
"init.updated": "Updated {file}",
|
|
185
|
-
"init.
|
|
186
|
-
"init.
|
|
187
|
-
"init.
|
|
188
|
-
"init.
|
|
189
|
-
"init.
|
|
209
|
+
"init.created": "Created {file}",
|
|
210
|
+
"init.updated": "Updated {file}",
|
|
211
|
+
"init.adoptedExistingRepo": "Existing repository content was adopted into {dir}/.",
|
|
212
|
+
"init.registered": "Project registered in the global portfolio.",
|
|
213
|
+
"init.defaultFocus": "Operational project bootstrap",
|
|
214
|
+
"init.defaultTarget": "Project managed with trackops",
|
|
215
|
+
"init.defaultTaskTitle": "Set up project with trackops",
|
|
216
|
+
"init.defaultTaskSummary": "Verify initial structure, adjust phases and confirm operational integration.",
|
|
217
|
+
"init.error.legacyDetected": "Legacy TrackOps project detected. Run 'trackops workspace migrate' instead of 'trackops init'.",
|
|
218
|
+
"init.error.reservedConflict": "Cannot initialize TrackOps here because these reserved entries already exist without a TrackOps workspace: {entries}. Resolve or rename them first.",
|
|
190
219
|
|
|
191
220
|
"opera.installed": "OPERA methodology installed (v{version}).",
|
|
192
221
|
"opera.alreadyInstalled": "OPERA is already installed in this project (v{version}).",
|
|
@@ -194,42 +223,123 @@
|
|
|
194
223
|
"opera.upgraded": "OPERA upgraded to v{version}.",
|
|
195
224
|
"opera.primitiveDetected": "Existing OPERA installation detected (not managed by Ops).",
|
|
196
225
|
"opera.status.version": "OPERA v{version}",
|
|
197
|
-
"opera.status.installed": " Installed: {value}",
|
|
198
|
-
"opera.status.skills": " Skills: {value}",
|
|
199
|
-
"opera.status.locale": " Locale: {locale} ({source})",
|
|
200
|
-
"opera.status.legacy": "
|
|
201
|
-
"opera.status.contractVersion": " Contract version: {value}",
|
|
202
|
-
"opera.status.contractReadiness": " Contract readiness: {value}",
|
|
203
|
-
"opera.status.bootstrap": " Bootstrap: {value}",
|
|
204
|
-
"opera.status.mode": " Mode: {value}",
|
|
205
|
-
"opera.status.route": " Route: {value}",
|
|
206
|
-
"opera.status.ownership": "
|
|
207
|
-
"opera.status.missing": " Missing: {value}",
|
|
208
|
-
"opera.status.
|
|
209
|
-
"opera.status.
|
|
210
|
-
"opera.status.
|
|
211
|
-
"opera.status.
|
|
226
|
+
"opera.status.installed": " Installed: {value}",
|
|
227
|
+
"opera.status.skills": " Skills: {value}",
|
|
228
|
+
"opera.status.locale": " Locale: {locale} ({source})",
|
|
229
|
+
"opera.status.legacy": " Compatibility: {value}",
|
|
230
|
+
"opera.status.contractVersion": " Contract version: {value}",
|
|
231
|
+
"opera.status.contractReadiness": " Contract readiness: {value}",
|
|
232
|
+
"opera.status.bootstrap": " Bootstrap: {value}",
|
|
233
|
+
"opera.status.mode": " Mode: {value}",
|
|
234
|
+
"opera.status.route": " Route: {value}",
|
|
235
|
+
"opera.status.ownership": " Decision owner: {value}",
|
|
236
|
+
"opera.status.missing": " Missing: {value}",
|
|
237
|
+
"opera.status.awaitingAgentExplanation": " TrackOps is waiting for the agent to produce the bootstrap files.",
|
|
238
|
+
"opera.status.awaitingAgentAction": " Action: run 'trackops opera handoff --print', give that context to your agent, and wait for the requested files.",
|
|
239
|
+
"opera.status.directExplanation": " Guided bootstrap is still incomplete.",
|
|
240
|
+
"opera.status.directAction": " Action: complete {intake} and {spec}, then resume.",
|
|
241
|
+
"opera.status.contractNotGenerated": " The operating contract is not generated until bootstrap completes.",
|
|
242
|
+
"opera.status.resume": " Resume: trackops opera bootstrap --resume",
|
|
243
|
+
"opera.status.handoff": " Agent handoff: {value}",
|
|
244
|
+
"opera.status.intake": " Intake: {value}",
|
|
245
|
+
"opera.status.specDossier": " Specification brief: {value}",
|
|
246
|
+
"opera.status.openQuestions": " Open questions: {value}",
|
|
247
|
+
"opera.status.qualityReport": " Quality report: {value}",
|
|
248
|
+
"opera.status.structure": " Structure:",
|
|
212
249
|
"opera.configure.invalidPhases": "Invalid phases JSON.",
|
|
213
250
|
"opera.configure.updated": "Configuration updated.",
|
|
214
251
|
"opera.upgrade.runInstallFirst": "Run 'trackops opera install' first.",
|
|
215
|
-
"opera.upgrade.usage": "Usage: trackops opera upgrade --stable [--reset]",
|
|
216
|
-
"opera.upgrade.legacyUnsupported": "Legacy OPERA project detected. Run 'trackops opera upgrade --stable --reset' to move it to the current stable model.",
|
|
217
|
-
"opera.upgrade.backup": "Backup: {path}",
|
|
218
|
-
"
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
"
|
|
229
|
-
|
|
230
|
-
"
|
|
231
|
-
|
|
232
|
-
"
|
|
252
|
+
"opera.upgrade.usage": "Usage: trackops opera upgrade --stable [--reset]",
|
|
253
|
+
"opera.upgrade.legacyUnsupported": "Legacy OPERA project detected. Run 'trackops opera upgrade --stable --reset' to move it to the current stable model.",
|
|
254
|
+
"opera.upgrade.backup": "Backup: {path}",
|
|
255
|
+
"opera.handoff.summary": "Bootstrap summary: {status}",
|
|
256
|
+
"opera.handoff.mode": "Mode: {mode}",
|
|
257
|
+
"opera.handoff.markdown": "Markdown handoff: {value}",
|
|
258
|
+
"opera.handoff.json": "JSON handoff: {value}",
|
|
259
|
+
"opera.handoff.directTitle": "Guided OPERA bootstrap",
|
|
260
|
+
"opera.handoff.directSummary": "Guided bootstrap summary: {status}",
|
|
261
|
+
"opera.handoff.directStatus": "Bootstrap status",
|
|
262
|
+
"opera.handoff.directIntake": "Intake file",
|
|
263
|
+
"opera.handoff.directSpec": "Specification brief",
|
|
264
|
+
"opera.handoff.directQuestions": "Open questions",
|
|
265
|
+
"opera.handoff.directQuality": "Quality report",
|
|
266
|
+
"opera.handoff.directNext": "Next step: complete the guided bootstrap files and run 'trackops opera bootstrap --resume'.",
|
|
267
|
+
"postinstall.localeSet": "TrackOps set the language to '{locale}' ({source}).",
|
|
268
|
+
|
|
269
|
+
"skill.installed": "Skill '{name}' installed.",
|
|
270
|
+
"skill.removed": "Skill '{name}' uninstalled.",
|
|
271
|
+
"skill.notFound": "Skill '{name}' not found in the catalog.",
|
|
272
|
+
"skill.alreadyInstalled": "Skill '{name}' is already installed.",
|
|
273
|
+
"skill.notInstalled": "Skill '{name}' is not installed.",
|
|
274
|
+
"skill.catalogTitle": "Available skills:",
|
|
275
|
+
"skill.listTitle": "Installed skills:",
|
|
276
|
+
"skill.nameRequired": "You must provide a skill name.",
|
|
277
|
+
"skill.noneInstalled": "No skills are installed.",
|
|
278
|
+
"skill.noneCatalog": "No skills are available in the catalog.",
|
|
279
|
+
|
|
280
|
+
"env.status.title": "Environment:",
|
|
281
|
+
"env.status.rootEnv": " Root .env: {path}",
|
|
282
|
+
"env.status.example": " Example: {path}",
|
|
283
|
+
"env.status.appBridge": " App bridge: {path}",
|
|
284
|
+
"env.status.bridgeMode": " Bridge mode: {value}",
|
|
285
|
+
"env.status.required": " Required keys: {value}",
|
|
286
|
+
"env.status.present": " Present: {value}",
|
|
287
|
+
"env.status.missing": " Missing: {value}",
|
|
288
|
+
"env.sync.updated": "Environment synced at {path}",
|
|
289
|
+
"env.sync.missing": "Missing required keys: {value}",
|
|
290
|
+
|
|
291
|
+
"workspace.status.title": "Workspace:",
|
|
292
|
+
"workspace.status.layout": " Layout: {value}",
|
|
293
|
+
"workspace.status.root": " Root: {path}",
|
|
294
|
+
"workspace.status.app": " App: {path}",
|
|
295
|
+
"workspace.status.ops": " Ops: {path}",
|
|
296
|
+
"workspace.status.manifest": " Manifest: {path}",
|
|
297
|
+
"workspace.status.control": " Control: {path}",
|
|
298
|
+
"workspace.migrate.updated": "Workspace migrated: {path}",
|
|
299
|
+
"workspace.migrate.backup": "Backup branch: {branch}",
|
|
300
|
+
|
|
301
|
+
"cli.status.bootstrap": "Bootstrap: {status} | Locale: {locale}",
|
|
302
|
+
|
|
303
|
+
"bootstrap.status.awaiting_intake": "awaiting guided input",
|
|
304
|
+
"bootstrap.status.awaiting_agent": "waiting for agent",
|
|
305
|
+
"bootstrap.status.completed": "completed",
|
|
306
|
+
"bootstrap.status.blocked": "blocked",
|
|
307
|
+
"bootstrap.status.needs_review": "needs review",
|
|
308
|
+
"bootstrap.status.legacy_unsupported": "legacy model not supported",
|
|
309
|
+
"bootstrap.mode.agent_handoff": "agent-guided discovery",
|
|
310
|
+
"bootstrap.mode.direct_cli": "guided terminal bootstrap",
|
|
311
|
+
"bootstrap.reason.forced_handoff": "explicitly forced to handoff mode",
|
|
312
|
+
"bootstrap.reason.forced_direct": "explicitly forced to guided terminal mode",
|
|
313
|
+
"bootstrap.reason.non_technical_user": "the user needs guided discovery",
|
|
314
|
+
"bootstrap.reason.idea_stage": "the project is still at idea or draft stage",
|
|
315
|
+
"bootstrap.reason.insufficient_docs": "there is not enough documentation to continue safely in the terminal",
|
|
316
|
+
"bootstrap.reason.agent_owned_decisions": "key decisions were delegated to the agent",
|
|
317
|
+
"bootstrap.reason.technical_existing_project": "the project is technical, documented, and ready for terminal bootstrap",
|
|
318
|
+
"bootstrap.ownership.user": "user",
|
|
319
|
+
"bootstrap.ownership.shared": "shared",
|
|
320
|
+
"bootstrap.ownership.agent": "agent",
|
|
321
|
+
"bootstrap.readiness.hypothesis": "initial draft",
|
|
322
|
+
"bootstrap.readiness.provisional": "provisional",
|
|
323
|
+
"bootstrap.readiness.verified": "verified",
|
|
324
|
+
"bootstrap.readiness.locked": "finalized",
|
|
325
|
+
"bootstrap.scaffold.specTitle": "Specification brief",
|
|
326
|
+
"bootstrap.scaffold.problemStatement": "Problem statement",
|
|
327
|
+
"bootstrap.scaffold.targetUser": "Target user",
|
|
328
|
+
"bootstrap.scaffold.singularDesiredOutcome": "Singular desired outcome",
|
|
329
|
+
"bootstrap.scaffold.deliveryTarget": "Delivery target",
|
|
330
|
+
"bootstrap.scaffold.sourceOfTruth": "Source of truth",
|
|
331
|
+
"bootstrap.scaffold.specPlaceholder": "Use this file to consolidate the project specification before OPERA ingests it.",
|
|
332
|
+
"bootstrap.scaffold.openQuestionsTitle": "Open questions",
|
|
333
|
+
"bootstrap.scaffold.missingFields": "Missing fields",
|
|
334
|
+
"bootstrap.scaffold.contradictions": "Contradictions",
|
|
335
|
+
"bootstrap.scaffold.none": "None.",
|
|
336
|
+
"bootstrap.legacy.supported": "current stable model",
|
|
337
|
+
"bootstrap.legacy.legacy_unsupported": "legacy model requires upgrade",
|
|
338
|
+
|
|
339
|
+
"bootstrap.header": "OPERA Bootstrap",
|
|
340
|
+
"bootstrap.subtitle": "Classify the user and the project first.\n TrackOps will decide whether to continue in the terminal or route discovery to the agent.",
|
|
341
|
+
"bootstrap.instructions": "Answer with the values shown in brackets.\n Press Enter to keep the default when unsure.",
|
|
342
|
+
"bootstrap.resultHeader": "Result",
|
|
233
343
|
"bootstrap.question.technicalLevel": "User technical level",
|
|
234
344
|
"bootstrap.question.projectState": "Current project state",
|
|
235
345
|
"bootstrap.question.docsState": "Available documentation",
|
|
@@ -248,12 +358,18 @@
|
|
|
248
358
|
"bootstrap.question.templates": "Template files (comma separated)",
|
|
249
359
|
"bootstrap.question.repoTasks": "Include optional repo tasks? [y/n]",
|
|
250
360
|
"bootstrap.completed": "OPERA bootstrap completed.",
|
|
361
|
+
"bootstrap.resumeBlocked": "Bootstrap resumed but quality is BLOCKED. The following fields are missing:",
|
|
362
|
+
"bootstrap.resumeNeedsReview": "Bootstrap resumed but needs review. The following fields need attention:",
|
|
363
|
+
"bootstrap.resumeAwaitingArtifacts": "Agent artifacts not found. Ensure ops/bootstrap/intake.json and ops/bootstrap/spec-dossier.md exist.",
|
|
364
|
+
"bootstrap.resumeEmptyArtifacts": "Agent artifacts are empty. intake.json needs at least one meaningful field and spec-dossier.md must have content.",
|
|
365
|
+
"bootstrap.routingMode": "Bootstrap routing: {mode} (reason: {reason})",
|
|
251
366
|
"bootstrap.pending": "OPERA bootstrap saved as pending. Resume with 'trackops opera bootstrap --resume'.",
|
|
252
|
-
"bootstrap.awaitingAgent": "OPERA bootstrap has been routed to the agent.
|
|
367
|
+
"bootstrap.awaitingAgent": "OPERA bootstrap has been routed to the agent.",
|
|
253
368
|
"bootstrap.handoffFile": "Handoff file",
|
|
254
|
-
"bootstrap.next.
|
|
255
|
-
"bootstrap.next.
|
|
256
|
-
"bootstrap.next.
|
|
369
|
+
"bootstrap.next.label": "Next step",
|
|
370
|
+
"bootstrap.next.handoff": "Run 'trackops opera handoff --print', paste the context into your agent, and come back when ops/bootstrap/intake.json and ops/bootstrap/spec-dossier.md exist.",
|
|
371
|
+
"bootstrap.next.directCompleted": "Review 'trackops opera status' and continue normal work with 'trackops next' and 'trackops sync'.",
|
|
372
|
+
"bootstrap.next.directPending": "Complete ops/bootstrap/intake.json and ops/bootstrap/spec-dossier.md, then resume with 'trackops opera bootstrap --resume'.",
|
|
257
373
|
"bootstrap.infer.envSourceHint": "Environment files detected",
|
|
258
374
|
"bootstrap.noneDefined": "Not defined yet.",
|
|
259
375
|
"bootstrap.pendingValue": "Pending definition.",
|
|
@@ -448,7 +564,13 @@
|
|
|
448
564
|
"handoff.instruction.writeIntake": "Write `ops/bootstrap/intake.json` with the structured discovery output.",
|
|
449
565
|
"handoff.instruction.writeSpec": "Write `ops/bootstrap/spec-dossier.md` with the narrative or technical specification that OPERA will ingest.",
|
|
450
566
|
"handoff.instruction.writeQuestions": "Write `ops/bootstrap/open-questions.md` if important uncertainties remain.",
|
|
451
|
-
"handoff.instruction.includeFields": "Include explicit fields for
|
|
567
|
+
"handoff.instruction.includeFields": "Include explicit fields in intake.json for: problemStatement, targetUser, singularDesiredOutcome, sourceOfTruth, payload (delivery target), inputSchema, outputSchema, and decisionOwnership.",
|
|
568
|
+
"handoff.instruction.schemaFormat": "For inputSchema and outputSchema, provide a JSON object describing the data shape with at least one key. An empty {} is not accepted. Example: {\"users\": [{\"id\": \"string\"}]}.",
|
|
569
|
+
"handoff.instruction.decisionOwnership": "Include decisionOwnership in intake.json (valid values: user, shared, agent).",
|
|
452
570
|
"handoff.instruction.respondInLanguage": "Respond to the user in {language}.",
|
|
453
|
-
"handoff.
|
|
571
|
+
"handoff.instruction.neverRename": "The framework is called OPERA. NEVER use 'ETAPA', 'E.T.A.P.A.', or any other alternative name.",
|
|
572
|
+
"handoff.instruction.closure": "When you finish writing the files, tell the user exactly this: 'The files are ready. Go back to the terminal and run: trackops opera bootstrap --resume'. Do not offer scaffolding, folder creation, or any additional steps. Your job ends with the bootstrap files.",
|
|
573
|
+
"handoff.label.knownIntention": "Known project intention",
|
|
574
|
+
"handoff.section.intakeSchema": "Required intake.json schema",
|
|
575
|
+
"handoff.instruction.intakeRequired": "The file `ops/bootstrap/intake.json` MUST include ALL of these fields. Missing fields will block the bootstrap. Use null only if genuinely unknown after discovery."
|
|
454
576
|
}
|
package/locales/es.json
CHANGED
|
@@ -69,6 +69,16 @@
|
|
|
69
69
|
"cli.actionNotSupported": "Accion no soportada: {action}",
|
|
70
70
|
"cli.mustProvideActionAndId": "Debes indicar accion e id de tarea.",
|
|
71
71
|
"cli.noReadyTasks": "No hay tareas listas. Revisa bloqueadores y dependencias.",
|
|
72
|
+
"cli.noReadyTasks.blocked": "No hay tareas listas. Hay {count} tarea(s) bloqueada(s). Ejecuta 'trackops status' para ver detalles.",
|
|
73
|
+
"cli.noReadyTasks.allDone": "Todas las tareas estan completadas o canceladas. El proyecto ha alcanzado completitud operativa.",
|
|
74
|
+
"control.circularDependency": "Advertencia: dependencia circular detectada en tarea(s): {taskIds}.",
|
|
75
|
+
"control.taskAlreadyStatus": "La tarea '{taskId}' ya esta en estado '{status}'. Sin cambios.",
|
|
76
|
+
"control.contractStale": "El contrato operativo estaba desactualizado y ha sido revalidado.",
|
|
77
|
+
"control.docsOverwriteWarning": "Advertencia: {file} tiene ediciones manuales y no fue sobreescrito. Usa --force para forzar.",
|
|
78
|
+
"opera.install.bootstrapConfirm": "¿Iniciar bootstrap ahora? [y/N]",
|
|
79
|
+
"opera.install.bootstrapSkipped": "El bootstrap no se inició. Ejecuta 'trackops opera bootstrap' cuando quieras continuar.",
|
|
80
|
+
"skill.installError": "Advertencia: no se pudo instalar la skill '{name}': {error}",
|
|
81
|
+
"cli.help.initFirst": "Ejecuta 'trackops init' para inicializar un proyecto aqui.",
|
|
72
82
|
"cli.hooksInstalled": "Git hooks instalados en .githooks",
|
|
73
83
|
"cli.hooksError": "No se pudo configurar core.hooksPath.",
|
|
74
84
|
"cli.noProjectFound": "No se encontro project_control.json en este directorio ni superiores.",
|
|
@@ -88,18 +98,32 @@
|
|
|
88
98
|
"cli.status.repo": "Repositorio:",
|
|
89
99
|
"cli.status.branch": "Rama: {branch} | Arbol: {treeStatus}",
|
|
90
100
|
"cli.status.treeClean": "limpio",
|
|
91
|
-
"cli.status.treeDirty": "
|
|
101
|
+
"cli.status.treeDirty": "con cambios ({staged} preparados, {unstaged} sin preparar, {untracked} nuevos)",
|
|
92
102
|
"cli.status.lastCommit": "Ultimo commit: {hash} {subject}",
|
|
93
|
-
"cli.status.divergence": "Divergencia:
|
|
94
|
-
"cli.status.runtime": "Runtime: {path}",
|
|
95
|
-
"cli.status.docsSynced": "Documentacion sincronizada: {status}",
|
|
96
|
-
"cli.status.docsSyncedYes": "si",
|
|
97
|
-
"cli.status.docsSyncedNo": "no ({files})",
|
|
98
|
-
|
|
99
|
-
"cli.
|
|
100
|
-
"cli.
|
|
101
|
-
"cli.
|
|
102
|
-
"cli.
|
|
103
|
+
"cli.status.divergence": "Divergencia con remoto: {ahead} por enviar, {behind} por traer",
|
|
104
|
+
"cli.status.runtime": "Runtime: {path}",
|
|
105
|
+
"cli.status.docsSynced": "Documentacion sincronizada: {status}",
|
|
106
|
+
"cli.status.docsSyncedYes": "si",
|
|
107
|
+
"cli.status.docsSyncedNo": "no ({files})",
|
|
108
|
+
"cli.status.layout": "Estructura: {layout} | Raiz: {workspace}",
|
|
109
|
+
"cli.status.appRoot": "App: {path}",
|
|
110
|
+
"cli.status.opsRoot": "Ops: {path}",
|
|
111
|
+
"cli.status.bootstrapMode": "Ruta de bootstrap: {value}",
|
|
112
|
+
"cli.status.bootstrapReason": "Motivo de la ruta: {value}",
|
|
113
|
+
"cli.status.gitState": "Git: {state}",
|
|
114
|
+
"cli.status.gitNotInitialized": "no inicializado",
|
|
115
|
+
"cli.status.gitAction": "Ejecuta 'git init' antes de confiar en el estado del repositorio o en los flujos de release.",
|
|
116
|
+
"cli.status.branchDetached": "HEAD desacoplado",
|
|
117
|
+
"cli.status.noUpstream": "Todavia no hay rama remota configurada.",
|
|
118
|
+
"cli.status.envPresent": "Claves de entorno presentes: {value}",
|
|
119
|
+
"cli.status.envMissing": "Claves de entorno faltantes: {value}",
|
|
120
|
+
|
|
121
|
+
"cli.next.phase": "fase",
|
|
122
|
+
"cli.next.priority": "prioridad",
|
|
123
|
+
"cli.next.stream": "stream",
|
|
124
|
+
"cli.next.summary": "resumen",
|
|
125
|
+
"cli.sync.dryRunWouldUpdate": "Se actualizarian: {files}",
|
|
126
|
+
"cli.sync.dryRunInSync": "Toda la documentacion ya esta sincronizada.",
|
|
103
127
|
|
|
104
128
|
"cli.help.title": "Control operativo del proyecto",
|
|
105
129
|
"cli.help.usage": "Uso:",
|
|
@@ -120,11 +144,13 @@
|
|
|
120
144
|
"cli.help.task.desc": "Acciones: start, review, complete, block, pending, cancel, note.",
|
|
121
145
|
"cli.help.opera.desc": "Gestiona OPERA.",
|
|
122
146
|
"cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
|
|
123
|
-
"cli.help.locale.desc": "Muestra o actualiza el idioma global de TrackOps.",
|
|
124
|
-
"cli.help.doctor.desc": "Explica el origen efectivo del idioma para esta maquina/proyecto.",
|
|
125
|
-
"cli.help.skill.desc": "Gestiona skills.",
|
|
126
|
-
"cli.help.help.desc": "Muestra esta ayuda.",
|
|
127
|
-
"cli.help.
|
|
147
|
+
"cli.help.locale.desc": "Muestra o actualiza el idioma global de TrackOps.",
|
|
148
|
+
"cli.help.doctor.desc": "Explica el origen efectivo del idioma para esta maquina/proyecto.",
|
|
149
|
+
"cli.help.skill.desc": "Gestiona skills.",
|
|
150
|
+
"cli.help.help.desc": "Muestra esta ayuda.",
|
|
151
|
+
"cli.help.globalFlags": "Flags globales:",
|
|
152
|
+
"cli.help.globalFlags.line1": "Usa '--plain' (o '--a11y') para desactivar el formato con Unicode y facilitar lectores de pantalla, logs o terminales limitadas.",
|
|
153
|
+
"cli.help.globalWorkflow": "Flujo global del agente:",
|
|
128
154
|
"cli.help.globalWorkflow.line1": "Instala la skill con 'npx skills add Baxahaun/trackops' y luego el runtime con 'npm install -g trackops'.",
|
|
129
155
|
"cli.help.globalWorkflow.line2": "Despues verifica con 'trackops --version' y usa 'trackops init' y 'trackops opera install' de forma explicita dentro de cada proyecto.",
|
|
130
156
|
"cli.usage.workspace": "Uso: trackops workspace <status|migrate>",
|
|
@@ -180,13 +206,16 @@
|
|
|
180
206
|
|
|
181
207
|
"init.welcome": "Proyecto inicializado con trackops.",
|
|
182
208
|
"init.opsExists": "Ops ya esta instalado en este proyecto.",
|
|
183
|
-
"init.created": "Creado {file}",
|
|
184
|
-
"init.updated": "Actualizado {file}",
|
|
185
|
-
"init.
|
|
186
|
-
"init.
|
|
187
|
-
"init.
|
|
188
|
-
"init.
|
|
189
|
-
"init.
|
|
209
|
+
"init.created": "Creado {file}",
|
|
210
|
+
"init.updated": "Actualizado {file}",
|
|
211
|
+
"init.adoptedExistingRepo": "El contenido del repositorio existente se movio a {dir}/.",
|
|
212
|
+
"init.registered": "Proyecto registrado en el portfolio global.",
|
|
213
|
+
"init.defaultFocus": "Bootstrap operativo del proyecto",
|
|
214
|
+
"init.defaultTarget": "Proyecto gestionado con trackops",
|
|
215
|
+
"init.defaultTaskTitle": "Configurar proyecto con trackops",
|
|
216
|
+
"init.defaultTaskSummary": "Verificar estructura inicial, ajustar fases y confirmar integracion operativa.",
|
|
217
|
+
"init.error.legacyDetected": "Se detectó un proyecto TrackOps legacy. Ejecuta 'trackops workspace migrate' en lugar de 'trackops init'.",
|
|
218
|
+
"init.error.reservedConflict": "No se puede inicializar TrackOps aqui porque estas entradas reservadas ya existen sin un workspace TrackOps valido: {entries}. Resuelvelas o renómbralas primero.",
|
|
190
219
|
|
|
191
220
|
"opera.installed": "Metodologia OPERA instalada (v{version}).",
|
|
192
221
|
"opera.alreadyInstalled": "OPERA ya esta instalado en este proyecto (v{version}).",
|
|
@@ -194,42 +223,123 @@
|
|
|
194
223
|
"opera.upgraded": "OPERA actualizado a v{version}.",
|
|
195
224
|
"opera.primitiveDetected": "Detectada instalacion OPERA existente (sin gestion por Ops).",
|
|
196
225
|
"opera.status.version": "OPERA v{version}",
|
|
197
|
-
"opera.status.installed": " Instalado: {value}",
|
|
198
|
-
"opera.status.skills": " Skills: {value}",
|
|
199
|
-
"opera.status.locale": " Idioma: {locale} ({source})",
|
|
200
|
-
"opera.status.legacy": "
|
|
201
|
-
"opera.status.contractVersion": " Version de contrato: {value}",
|
|
202
|
-
"opera.status.contractReadiness": "
|
|
203
|
-
"opera.status.bootstrap": "
|
|
204
|
-
"opera.status.mode": " Modo: {value}",
|
|
205
|
-
"opera.status.route": " Ruta: {value}",
|
|
206
|
-
"opera.status.ownership": "
|
|
207
|
-
"opera.status.missing": " Faltan: {value}",
|
|
208
|
-
"opera.status.
|
|
209
|
-
"opera.status.
|
|
210
|
-
"opera.status.
|
|
211
|
-
"opera.status.
|
|
226
|
+
"opera.status.installed": " Instalado: {value}",
|
|
227
|
+
"opera.status.skills": " Skills: {value}",
|
|
228
|
+
"opera.status.locale": " Idioma: {locale} ({source})",
|
|
229
|
+
"opera.status.legacy": " Compatibilidad: {value}",
|
|
230
|
+
"opera.status.contractVersion": " Version de contrato: {value}",
|
|
231
|
+
"opera.status.contractReadiness": " Madurez del contrato: {value}",
|
|
232
|
+
"opera.status.bootstrap": " Estado del bootstrap: {value}",
|
|
233
|
+
"opera.status.mode": " Modo: {value}",
|
|
234
|
+
"opera.status.route": " Ruta: {value}",
|
|
235
|
+
"opera.status.ownership": " Responsable de decisiones: {value}",
|
|
236
|
+
"opera.status.missing": " Faltan: {value}",
|
|
237
|
+
"opera.status.awaitingAgentExplanation": " TrackOps esta esperando que el agente produzca los archivos de bootstrap.",
|
|
238
|
+
"opera.status.awaitingAgentAction": " Accion: ejecuta 'trackops opera handoff --print', entrega ese contexto a tu agente y espera a que cree los archivos solicitados.",
|
|
239
|
+
"opera.status.directExplanation": " El bootstrap guiado todavia esta incompleto.",
|
|
240
|
+
"opera.status.directAction": " Accion: completa {intake} y {spec}, luego reanuda.",
|
|
241
|
+
"opera.status.contractNotGenerated": " El contrato operativo no se genera hasta completar el bootstrap.",
|
|
242
|
+
"opera.status.resume": " Reanudar: trackops opera bootstrap --resume",
|
|
243
|
+
"opera.status.handoff": " Contexto para agente: {value}",
|
|
244
|
+
"opera.status.intake": " Intake: {value}",
|
|
245
|
+
"opera.status.specDossier": " Dossier de especificacion: {value}",
|
|
246
|
+
"opera.status.openQuestions": " Preguntas abiertas: {value}",
|
|
247
|
+
"opera.status.qualityReport": " Informe de calidad: {value}",
|
|
248
|
+
"opera.status.structure": " Estructura:",
|
|
212
249
|
"opera.configure.invalidPhases": "JSON de fases invalido.",
|
|
213
250
|
"opera.configure.updated": "Configuracion actualizada.",
|
|
214
251
|
"opera.upgrade.runInstallFirst": "Ejecuta 'trackops opera install' primero.",
|
|
215
|
-
"opera.upgrade.usage": "Uso: trackops opera upgrade --stable [--reset]",
|
|
216
|
-
"opera.upgrade.legacyUnsupported": "Proyecto OPERA legacy detectado. Ejecuta 'trackops opera upgrade --stable --reset' para moverlo al modelo estable actual.",
|
|
217
|
-
"opera.upgrade.backup": "Backup: {path}",
|
|
218
|
-
"
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
"
|
|
229
|
-
|
|
230
|
-
"
|
|
231
|
-
|
|
232
|
-
"
|
|
252
|
+
"opera.upgrade.usage": "Uso: trackops opera upgrade --stable [--reset]",
|
|
253
|
+
"opera.upgrade.legacyUnsupported": "Proyecto OPERA legacy detectado. Ejecuta 'trackops opera upgrade --stable --reset' para moverlo al modelo estable actual.",
|
|
254
|
+
"opera.upgrade.backup": "Backup: {path}",
|
|
255
|
+
"opera.handoff.summary": "Resumen del bootstrap: {status}",
|
|
256
|
+
"opera.handoff.mode": "Modo: {mode}",
|
|
257
|
+
"opera.handoff.markdown": "Contexto markdown: {value}",
|
|
258
|
+
"opera.handoff.json": "Contexto JSON: {value}",
|
|
259
|
+
"opera.handoff.directTitle": "Bootstrap guiado de OPERA",
|
|
260
|
+
"opera.handoff.directSummary": "Resumen del bootstrap guiado: {status}",
|
|
261
|
+
"opera.handoff.directStatus": "Estado del bootstrap",
|
|
262
|
+
"opera.handoff.directIntake": "Archivo intake",
|
|
263
|
+
"opera.handoff.directSpec": "Dossier de especificacion",
|
|
264
|
+
"opera.handoff.directQuestions": "Preguntas abiertas",
|
|
265
|
+
"opera.handoff.directQuality": "Informe de calidad",
|
|
266
|
+
"opera.handoff.directNext": "Siguiente paso: completa los archivos del bootstrap guiado y ejecuta 'trackops opera bootstrap --resume'.",
|
|
267
|
+
"postinstall.localeSet": "TrackOps ha fijado el idioma en '{locale}' ({source}).",
|
|
268
|
+
|
|
269
|
+
"skill.installed": "Skill '{name}' instalada.",
|
|
270
|
+
"skill.removed": "Skill '{name}' desinstalada.",
|
|
271
|
+
"skill.notFound": "Skill '{name}' no encontrada en el catalogo.",
|
|
272
|
+
"skill.alreadyInstalled": "Skill '{name}' ya esta instalada.",
|
|
273
|
+
"skill.notInstalled": "Skill '{name}' no esta instalada.",
|
|
274
|
+
"skill.catalogTitle": "Skills disponibles:",
|
|
275
|
+
"skill.listTitle": "Skills instaladas:",
|
|
276
|
+
"skill.nameRequired": "Debes indicar el nombre de la skill.",
|
|
277
|
+
"skill.noneInstalled": "No hay skills instaladas.",
|
|
278
|
+
"skill.noneCatalog": "No hay skills disponibles en el catalogo.",
|
|
279
|
+
|
|
280
|
+
"env.status.title": "Entorno:",
|
|
281
|
+
"env.status.rootEnv": " .env raiz: {path}",
|
|
282
|
+
"env.status.example": " Ejemplo: {path}",
|
|
283
|
+
"env.status.appBridge": " Puente app: {path}",
|
|
284
|
+
"env.status.bridgeMode": " Modo de puente: {value}",
|
|
285
|
+
"env.status.required": " Claves requeridas: {value}",
|
|
286
|
+
"env.status.present": " Presentes: {value}",
|
|
287
|
+
"env.status.missing": " Faltantes: {value}",
|
|
288
|
+
"env.sync.updated": "Entorno sincronizado en {path}",
|
|
289
|
+
"env.sync.missing": "Claves requeridas faltantes: {value}",
|
|
290
|
+
|
|
291
|
+
"workspace.status.title": "Workspace:",
|
|
292
|
+
"workspace.status.layout": " Estructura: {value}",
|
|
293
|
+
"workspace.status.root": " Raiz: {path}",
|
|
294
|
+
"workspace.status.app": " App: {path}",
|
|
295
|
+
"workspace.status.ops": " Ops: {path}",
|
|
296
|
+
"workspace.status.manifest": " Manifest: {path}",
|
|
297
|
+
"workspace.status.control": " Control: {path}",
|
|
298
|
+
"workspace.migrate.updated": "Workspace migrado: {path}",
|
|
299
|
+
"workspace.migrate.backup": "Rama de backup: {branch}",
|
|
300
|
+
|
|
301
|
+
"cli.status.bootstrap": "Bootstrap: {status} | Idioma: {locale}",
|
|
302
|
+
|
|
303
|
+
"bootstrap.status.awaiting_intake": "esperando datos guiados",
|
|
304
|
+
"bootstrap.status.awaiting_agent": "esperando al agente",
|
|
305
|
+
"bootstrap.status.completed": "completado",
|
|
306
|
+
"bootstrap.status.blocked": "bloqueado",
|
|
307
|
+
"bootstrap.status.needs_review": "requiere revision",
|
|
308
|
+
"bootstrap.status.legacy_unsupported": "modelo legacy no soportado",
|
|
309
|
+
"bootstrap.mode.agent_handoff": "descubrimiento guiado por agente",
|
|
310
|
+
"bootstrap.mode.direct_cli": "bootstrap guiado por terminal",
|
|
311
|
+
"bootstrap.reason.forced_handoff": "se forzó explícitamente el modo handoff",
|
|
312
|
+
"bootstrap.reason.forced_direct": "se forzó explícitamente el modo guiado por terminal",
|
|
313
|
+
"bootstrap.reason.non_technical_user": "el usuario necesita descubrimiento guiado",
|
|
314
|
+
"bootstrap.reason.idea_stage": "el proyecto sigue en etapa de idea o borrador",
|
|
315
|
+
"bootstrap.reason.insufficient_docs": "no hay documentación suficiente para continuar con seguridad en terminal",
|
|
316
|
+
"bootstrap.reason.agent_owned_decisions": "las decisiones clave quedaron delegadas al agente",
|
|
317
|
+
"bootstrap.reason.technical_existing_project": "el proyecto es técnico, tiene contexto y está listo para bootstrap en terminal",
|
|
318
|
+
"bootstrap.ownership.user": "usuario",
|
|
319
|
+
"bootstrap.ownership.shared": "compartida",
|
|
320
|
+
"bootstrap.ownership.agent": "agente",
|
|
321
|
+
"bootstrap.readiness.hypothesis": "borrador inicial",
|
|
322
|
+
"bootstrap.readiness.provisional": "provisional",
|
|
323
|
+
"bootstrap.readiness.verified": "verificado",
|
|
324
|
+
"bootstrap.readiness.locked": "cerrado",
|
|
325
|
+
"bootstrap.scaffold.specTitle": "Dossier de especificacion",
|
|
326
|
+
"bootstrap.scaffold.problemStatement": "Problema principal",
|
|
327
|
+
"bootstrap.scaffold.targetUser": "Usuario objetivo",
|
|
328
|
+
"bootstrap.scaffold.singularDesiredOutcome": "Resultado singular deseado",
|
|
329
|
+
"bootstrap.scaffold.deliveryTarget": "Objetivo de entrega",
|
|
330
|
+
"bootstrap.scaffold.sourceOfTruth": "Fuente de verdad",
|
|
331
|
+
"bootstrap.scaffold.specPlaceholder": "Usa este archivo para consolidar la especificacion del proyecto antes de que OPERA la procese.",
|
|
332
|
+
"bootstrap.scaffold.openQuestionsTitle": "Preguntas abiertas",
|
|
333
|
+
"bootstrap.scaffold.missingFields": "Campos pendientes",
|
|
334
|
+
"bootstrap.scaffold.contradictions": "Contradicciones",
|
|
335
|
+
"bootstrap.scaffold.none": "Ninguna.",
|
|
336
|
+
"bootstrap.legacy.supported": "modelo estable actual",
|
|
337
|
+
"bootstrap.legacy.legacy_unsupported": "modelo legacy requiere upgrade",
|
|
338
|
+
|
|
339
|
+
"bootstrap.header": "Bootstrap OPERA",
|
|
340
|
+
"bootstrap.subtitle": "Primero clasifica al usuario y el estado del proyecto.\n TrackOps decidirá si continuar por terminal o derivar el arranque al agente.",
|
|
341
|
+
"bootstrap.instructions": "Responde con los valores entre corchetes.\n Si no sabes una respuesta, pulsa Enter para aceptar el valor por defecto.",
|
|
342
|
+
"bootstrap.resultHeader": "Resultado",
|
|
233
343
|
"bootstrap.question.technicalLevel": "Nivel tecnico del usuario",
|
|
234
344
|
"bootstrap.question.projectState": "Estado actual del proyecto",
|
|
235
345
|
"bootstrap.question.docsState": "Documentacion disponible",
|
|
@@ -248,12 +358,18 @@
|
|
|
248
358
|
"bootstrap.question.templates": "Archivos template (separados por comas)",
|
|
249
359
|
"bootstrap.question.repoTasks": "¿Incluir tareas opcionales de repo? [y/n]",
|
|
250
360
|
"bootstrap.completed": "Bootstrap OPERA completado.",
|
|
361
|
+
"bootstrap.resumeBlocked": "Bootstrap reanudado pero la calidad esta BLOQUEADA. Faltan los siguientes campos:",
|
|
362
|
+
"bootstrap.resumeNeedsReview": "Bootstrap reanudado pero necesita revision. Los siguientes campos requieren atencion:",
|
|
363
|
+
"bootstrap.resumeAwaitingArtifacts": "Artefactos del agente no encontrados. Asegurate de que existan ops/bootstrap/intake.json y ops/bootstrap/spec-dossier.md.",
|
|
364
|
+
"bootstrap.resumeEmptyArtifacts": "Los artefactos del agente estan vacios. intake.json necesita al menos un campo significativo y spec-dossier.md debe tener contenido.",
|
|
365
|
+
"bootstrap.routingMode": "Routing del bootstrap: {mode} (razon: {reason})",
|
|
251
366
|
"bootstrap.pending": "Bootstrap OPERA guardado como pendiente. Reanuda con 'trackops opera bootstrap --resume'.",
|
|
252
|
-
"bootstrap.awaitingAgent": "Bootstrap OPERA derivado al agente.
|
|
367
|
+
"bootstrap.awaitingAgent": "Bootstrap OPERA derivado al agente.",
|
|
253
368
|
"bootstrap.handoffFile": "Archivo de handoff",
|
|
254
|
-
"bootstrap.next.
|
|
255
|
-
"bootstrap.next.
|
|
256
|
-
"bootstrap.next.
|
|
369
|
+
"bootstrap.next.label": "Siguiente paso",
|
|
370
|
+
"bootstrap.next.handoff": "Ejecuta 'trackops opera handoff --print', pega el contexto en tu agente y vuelve cuando existan ops/bootstrap/intake.json y ops/bootstrap/spec-dossier.md.",
|
|
371
|
+
"bootstrap.next.directCompleted": "Revisa 'trackops opera status' y continúa el trabajo normal con 'trackops next' y 'trackops sync'.",
|
|
372
|
+
"bootstrap.next.directPending": "Completa ops/bootstrap/intake.json y ops/bootstrap/spec-dossier.md, luego reanuda con 'trackops opera bootstrap --resume'.",
|
|
257
373
|
"bootstrap.infer.envSourceHint": "Detectados archivos de entorno",
|
|
258
374
|
"bootstrap.noneDefined": "Aun no definido.",
|
|
259
375
|
"bootstrap.pendingValue": "Pendiente de definir.",
|
|
@@ -448,7 +564,13 @@
|
|
|
448
564
|
"handoff.instruction.writeIntake": "Escribe `ops/bootstrap/intake.json` con el resultado estructurado del descubrimiento.",
|
|
449
565
|
"handoff.instruction.writeSpec": "Escribe `ops/bootstrap/spec-dossier.md` con la especificacion narrativa o tecnica que OPERA ingerira.",
|
|
450
566
|
"handoff.instruction.writeQuestions": "Escribe `ops/bootstrap/open-questions.md` si quedan incertidumbres importantes.",
|
|
451
|
-
"handoff.instruction.includeFields": "Incluye campos explicitos para
|
|
567
|
+
"handoff.instruction.includeFields": "Incluye campos explicitos en intake.json para: problemStatement, targetUser, singularDesiredOutcome, sourceOfTruth, payload (objetivo de entrega), inputSchema, outputSchema y decisionOwnership.",
|
|
568
|
+
"handoff.instruction.schemaFormat": "Para inputSchema y outputSchema, proporciona un objeto JSON describiendo la forma de los datos con al menos una clave. Un {} vacio no es aceptado. Ejemplo: {\"users\": [{\"id\": \"string\"}]}.",
|
|
569
|
+
"handoff.instruction.decisionOwnership": "Incluye decisionOwnership en intake.json (valores validos: user, shared, agent).",
|
|
452
570
|
"handoff.instruction.respondInLanguage": "Responde al usuario en {language}.",
|
|
453
|
-
"handoff.
|
|
571
|
+
"handoff.instruction.neverRename": "El framework se llama OPERA. NUNCA uses 'ETAPA', 'E.T.A.P.A.' ni ningun otro nombre alternativo.",
|
|
572
|
+
"handoff.instruction.closure": "Cuando termines de escribir los archivos, dile al usuario exactamente esto: 'Los archivos estan listos. Vuelve a la terminal y ejecuta: trackops opera bootstrap --resume'. No ofrezcas scaffolding, creacion de carpetas ni ningun paso adicional. Tu trabajo termina con los archivos de bootstrap.",
|
|
573
|
+
"handoff.label.knownIntention": "Intencion conocida del proyecto",
|
|
574
|
+
"handoff.section.intakeSchema": "Schema obligatorio de intake.json",
|
|
575
|
+
"handoff.instruction.intakeRequired": "El archivo `ops/bootstrap/intake.json` DEBE incluir TODOS estos campos. Los campos faltantes bloquean el bootstrap. Usa null solo si es genuinamente desconocido tras el descubrimiento."
|
|
454
576
|
}
|