trackops 2.0.4 → 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/LICENSE +21 -21
- package/README.md +660 -575
- package/bin/trackops.js +127 -106
- package/lib/cli-format.js +118 -0
- package/lib/config.js +352 -326
- package/lib/control.js +408 -246
- package/lib/env.js +234 -222
- package/lib/i18n.js +5 -4
- package/lib/init.js +390 -282
- package/lib/locale.js +41 -41
- package/lib/opera-bootstrap.js +1066 -880
- package/lib/opera.js +615 -444
- package/lib/preferences.js +74 -74
- package/lib/registry.js +214 -214
- package/lib/release.js +56 -56
- package/lib/runtime-state.js +144 -144
- package/lib/skills.js +114 -89
- package/lib/workspace.js +259 -248
- package/locales/en.json +311 -167
- package/locales/es.json +314 -170
- package/package.json +61 -58
- package/scripts/postinstall-locale.js +21 -21
- package/scripts/skills-marketplace-smoke.js +124 -124
- package/scripts/smoke-tests.js +563 -517
- package/scripts/sync-skill-version.js +21 -21
- package/scripts/validate-skill.js +103 -103
- package/skills/trackops/SKILL.md +126 -122
- package/skills/trackops/agents/openai.yaml +7 -7
- package/skills/trackops/locales/en/SKILL.md +126 -122
- package/skills/trackops/locales/en/references/activation.md +94 -90
- package/skills/trackops/locales/en/references/troubleshooting.md +73 -67
- package/skills/trackops/locales/en/references/workflow.md +55 -32
- package/skills/trackops/references/activation.md +94 -90
- package/skills/trackops/references/troubleshooting.md +73 -67
- package/skills/trackops/references/workflow.md +55 -32
- package/skills/trackops/skill.json +29 -29
- package/templates/hooks/post-checkout +2 -2
- package/templates/hooks/post-commit +2 -2
- package/templates/hooks/post-merge +2 -2
- package/templates/opera/agent.md +28 -27
- package/templates/opera/architecture/dependency-graph.md +24 -24
- package/templates/opera/architecture/runtime-automation.md +24 -24
- package/templates/opera/architecture/runtime-operations.md +34 -34
- package/templates/opera/en/agent.md +22 -21
- package/templates/opera/en/architecture/dependency-graph.md +24 -24
- package/templates/opera/en/architecture/runtime-automation.md +24 -24
- package/templates/opera/en/architecture/runtime-operations.md +34 -34
- package/templates/opera/en/reviews/delivery-audit.md +18 -18
- package/templates/opera/en/reviews/integration-audit.md +18 -18
- package/templates/opera/en/router.md +24 -19
- package/templates/opera/references/autonomy-and-recovery.md +117 -117
- package/templates/opera/references/opera-cycle.md +193 -193
- package/templates/opera/registry.md +28 -28
- package/templates/opera/reviews/delivery-audit.md +18 -18
- package/templates/opera/reviews/integration-audit.md +18 -18
- package/templates/opera/router.md +54 -49
- package/templates/skills/changelog-updater/SKILL.md +69 -69
- package/templates/skills/commiter/SKILL.md +99 -99
- package/templates/skills/opera-contract-auditor/SKILL.md +38 -38
- package/templates/skills/opera-contract-auditor/locales/en/SKILL.md +38 -38
- package/templates/skills/opera-policy-guard/SKILL.md +26 -26
- package/templates/skills/opera-policy-guard/locales/en/SKILL.md +26 -26
- package/templates/skills/opera-skill/SKILL.md +279 -0
- package/templates/skills/opera-skill/locales/en/SKILL.md +279 -0
- package/templates/skills/opera-skill/locales/en/references/phase-dod.md +138 -0
- package/templates/skills/opera-skill/references/phase-dod.md +138 -0
- package/templates/skills/project-starter-skill/SKILL.md +150 -131
- package/templates/skills/project-starter-skill/locales/en/SKILL.md +143 -105
- package/templates/skills/project-starter-skill/references/opera-cycle.md +195 -193
- package/ui/css/base.css +284 -284
- package/ui/css/charts.css +425 -425
- package/ui/css/components.css +1107 -1107
- package/ui/css/onboarding.css +133 -133
- package/ui/css/terminal.css +125 -125
- package/ui/css/timeline.css +58 -58
- package/ui/css/tokens.css +284 -284
- package/ui/favicon.svg +5 -5
- package/ui/index.html +99 -99
- package/ui/js/charts.js +526 -526
- package/ui/js/console-logger.js +172 -172
- package/ui/js/filters.js +247 -247
- package/ui/js/icons.js +129 -129
- package/ui/js/keyboard.js +229 -229
- package/ui/js/router.js +142 -142
- package/ui/js/theme.js +100 -100
- package/ui/js/time-tracker.js +248 -248
- package/ui/js/views/dashboard.js +870 -870
- package/ui/js/views/flash.js +47 -47
- package/ui/js/views/projects.js +745 -745
- package/ui/js/views/scrum.js +476 -476
- package/ui/js/views/settings.js +331 -331
- package/ui/js/views/timeline.js +265 -265
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,69 +100,85 @@
|
|
|
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
|
-
"cli.help.title": "Project operational control",
|
|
105
|
-
"cli.help.usage": "Usage:",
|
|
106
|
-
"cli.help.commands": "Commands:",
|
|
107
|
-
"cli.help.init.desc": "Initialize TrackOps in the current directory.",
|
|
108
|
-
"cli.help.workspace.desc": "Show or migrate the current workspace layout.",
|
|
109
|
-
"cli.help.env.desc": "Audit or sync the workspace .env contract.",
|
|
110
|
-
"cli.help.release.desc": "Publish the configured app/ branch snapshot.",
|
|
111
|
-
"cli.help.version.desc": "Print the installed TrackOps version.",
|
|
112
|
-
"cli.help.status.desc": "Show project state: focus, active phase, ready tasks, blockers, repo.",
|
|
113
|
-
"cli.help.next.desc": "Prioritized queue of next executable tasks.",
|
|
114
|
-
"cli.help.sync.desc": "Regenerate task_plan.md, progress.md and findings.md from project_control.json.",
|
|
115
|
-
"cli.help.dashboard.desc": "Launch the local web dashboard on a free port and print local/network URLs.",
|
|
116
|
-
"cli.help.refreshRepo.desc": "Update the repo runtime snapshot with git state.",
|
|
117
|
-
"cli.help.installHooks.desc": "Configure git core.hooksPath to use the TrackOps hooks directory.",
|
|
118
|
-
"cli.help.register.desc": "Register the current project in the multi-project portfolio.",
|
|
119
|
-
"cli.help.projects.desc": "List registered projects.",
|
|
120
|
-
"cli.help.task.desc": "Actions: start, review, complete, block, pending, cancel, note.",
|
|
121
|
-
"cli.help.opera.desc": "Manage OPERA.",
|
|
122
|
-
"cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
|
|
128
|
+
"cli.help.title": "Project operational control",
|
|
129
|
+
"cli.help.usage": "Usage:",
|
|
130
|
+
"cli.help.commands": "Commands:",
|
|
131
|
+
"cli.help.init.desc": "Initialize TrackOps in the current directory.",
|
|
132
|
+
"cli.help.workspace.desc": "Show or migrate the current workspace layout.",
|
|
133
|
+
"cli.help.env.desc": "Audit or sync the workspace .env contract.",
|
|
134
|
+
"cli.help.release.desc": "Publish the configured app/ branch snapshot.",
|
|
135
|
+
"cli.help.version.desc": "Print the installed TrackOps version.",
|
|
136
|
+
"cli.help.status.desc": "Show project state: focus, active phase, ready tasks, blockers, repo.",
|
|
137
|
+
"cli.help.next.desc": "Prioritized queue of next executable tasks.",
|
|
138
|
+
"cli.help.sync.desc": "Regenerate task_plan.md, progress.md and findings.md from project_control.json.",
|
|
139
|
+
"cli.help.dashboard.desc": "Launch the local web dashboard on a free port and print local/network URLs.",
|
|
140
|
+
"cli.help.refreshRepo.desc": "Update the repo runtime snapshot with git state.",
|
|
141
|
+
"cli.help.installHooks.desc": "Configure git core.hooksPath to use the TrackOps hooks directory.",
|
|
142
|
+
"cli.help.register.desc": "Register the current project in the multi-project portfolio.",
|
|
143
|
+
"cli.help.projects.desc": "List registered projects.",
|
|
144
|
+
"cli.help.task.desc": "Actions: start, review, complete, block, pending, cancel, note.",
|
|
145
|
+
"cli.help.opera.desc": "Manage OPERA.",
|
|
146
|
+
"cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
|
|
123
147
|
"cli.help.locale.desc": "Show or update the global TrackOps language.",
|
|
124
148
|
"cli.help.doctor.desc": "Explain the effective language source for this machine/project.",
|
|
125
149
|
"cli.help.skill.desc": "Manage skills.",
|
|
126
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.",
|
|
127
153
|
"cli.help.globalWorkflow": "Global agent workflow:",
|
|
128
|
-
"cli.help.globalWorkflow.line1": "Install the skill with 'npx skills add Baxahaun/trackops' and then the runtime with 'npm install -g trackops'.",
|
|
129
|
-
"cli.help.globalWorkflow.line2": "Then verify with 'trackops --version' and use 'trackops init' and 'trackops opera install' explicitly inside each project.",
|
|
130
|
-
"cli.usage.workspace": "Usage: trackops workspace <status|migrate>",
|
|
131
|
-
"cli.usage.env": "Usage: trackops env <status|sync>",
|
|
132
|
-
"cli.usage.opera": "Usage: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
|
|
133
|
-
"cli.usage.skill": "Usage: trackops skill <install|list|remove|catalog> [name]",
|
|
134
|
-
"cli.usage.locale": "Usage: trackops locale <get|set> [es|en]",
|
|
135
|
-
"cli.usage.doctor": "Usage: trackops doctor locale",
|
|
136
|
-
"cli.error.unknownCommand": "Unknown command: {command}",
|
|
137
|
-
"cli.error.runHelp": "Run 'trackops help' for usage.",
|
|
138
|
-
"cli.error.noWorkspace": "No TrackOps workspace found in this directory or any parent.",
|
|
139
|
-
"locale.effective": "Effective language",
|
|
140
|
-
"locale.source": "Source",
|
|
141
|
-
"locale.global": "Global language",
|
|
142
|
-
"locale.project": "Project language",
|
|
143
|
-
"locale.env": "Environment language",
|
|
144
|
-
"locale.system": "System language",
|
|
145
|
-
"locale.runtimeFile": "Runtime file",
|
|
146
|
-
"locale.none": "none",
|
|
147
|
-
"locale.invalid": "Invalid locale: {value}.",
|
|
148
|
-
"locale.updated": "Global language updated to {locale}.",
|
|
149
|
-
"locale.source.explicit": "explicit flag",
|
|
150
|
-
"locale.source.project": "project",
|
|
151
|
-
"locale.source.global": "global",
|
|
152
|
-
"locale.source.env": "environment",
|
|
153
|
-
"locale.source.system": "system",
|
|
154
|
-
"locale.source.prompt": "prompt",
|
|
155
|
-
"locale.source.manual": "manual",
|
|
154
|
+
"cli.help.globalWorkflow.line1": "Install the skill with 'npx skills add Baxahaun/trackops' and then the runtime with 'npm install -g trackops'.",
|
|
155
|
+
"cli.help.globalWorkflow.line2": "Then verify with 'trackops --version' and use 'trackops init' and 'trackops opera install' explicitly inside each project.",
|
|
156
|
+
"cli.usage.workspace": "Usage: trackops workspace <status|migrate>",
|
|
157
|
+
"cli.usage.env": "Usage: trackops env <status|sync>",
|
|
158
|
+
"cli.usage.opera": "Usage: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
|
|
159
|
+
"cli.usage.skill": "Usage: trackops skill <install|list|remove|catalog> [name]",
|
|
160
|
+
"cli.usage.locale": "Usage: trackops locale <get|set> [es|en]",
|
|
161
|
+
"cli.usage.doctor": "Usage: trackops doctor locale",
|
|
162
|
+
"cli.error.unknownCommand": "Unknown command: {command}",
|
|
163
|
+
"cli.error.runHelp": "Run 'trackops help' for usage.",
|
|
164
|
+
"cli.error.noWorkspace": "No TrackOps workspace found in this directory or any parent.",
|
|
165
|
+
"locale.effective": "Effective language",
|
|
166
|
+
"locale.source": "Source",
|
|
167
|
+
"locale.global": "Global language",
|
|
168
|
+
"locale.project": "Project language",
|
|
169
|
+
"locale.env": "Environment language",
|
|
170
|
+
"locale.system": "System language",
|
|
171
|
+
"locale.runtimeFile": "Runtime file",
|
|
172
|
+
"locale.none": "none",
|
|
173
|
+
"locale.invalid": "Invalid locale: {value}.",
|
|
174
|
+
"locale.updated": "Global language updated to {locale}.",
|
|
175
|
+
"locale.source.explicit": "explicit flag",
|
|
176
|
+
"locale.source.project": "project",
|
|
177
|
+
"locale.source.global": "global",
|
|
178
|
+
"locale.source.env": "environment",
|
|
179
|
+
"locale.source.system": "system",
|
|
180
|
+
"locale.source.prompt": "prompt",
|
|
181
|
+
"locale.source.manual": "manual",
|
|
156
182
|
|
|
157
183
|
"server.ready": "Ops dashboard ready at http://{host}:{port}",
|
|
158
184
|
"server.bannerTitle": "Serving!",
|
|
@@ -180,98 +206,188 @@
|
|
|
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
|
-
"opera.installed": "OPERA methodology installed (v{version}).",
|
|
192
|
-
"opera.alreadyInstalled": "OPERA is already installed in this project (v{version}).",
|
|
193
|
-
"opera.notInstalled": "OPERA is not installed in this project.",
|
|
194
|
-
"opera.upgraded": "OPERA upgraded to v{version}.",
|
|
195
|
-
"opera.primitiveDetected": "Existing OPERA installation detected (not managed by Ops).",
|
|
196
|
-
"opera.status.version": "OPERA v{version}",
|
|
220
|
+
"opera.installed": "OPERA methodology installed (v{version}).",
|
|
221
|
+
"opera.alreadyInstalled": "OPERA is already installed in this project (v{version}).",
|
|
222
|
+
"opera.notInstalled": "OPERA is not installed in this project.",
|
|
223
|
+
"opera.upgraded": "OPERA upgraded to v{version}.",
|
|
224
|
+
"opera.primitiveDetected": "Existing OPERA installation detected (not managed by Ops).",
|
|
225
|
+
"opera.status.version": "OPERA v{version}",
|
|
197
226
|
"opera.status.installed": " Installed: {value}",
|
|
198
227
|
"opera.status.skills": " Skills: {value}",
|
|
199
228
|
"opera.status.locale": " Locale: {locale} ({source})",
|
|
200
|
-
"opera.status.legacy": "
|
|
229
|
+
"opera.status.legacy": " Compatibility: {value}",
|
|
201
230
|
"opera.status.contractVersion": " Contract version: {value}",
|
|
202
231
|
"opera.status.contractReadiness": " Contract readiness: {value}",
|
|
203
232
|
"opera.status.bootstrap": " Bootstrap: {value}",
|
|
204
233
|
"opera.status.mode": " Mode: {value}",
|
|
205
234
|
"opera.status.route": " Route: {value}",
|
|
206
|
-
"opera.status.ownership": "
|
|
235
|
+
"opera.status.ownership": " Decision owner: {value}",
|
|
207
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.",
|
|
208
242
|
"opera.status.resume": " Resume: trackops opera bootstrap --resume",
|
|
209
|
-
"opera.status.handoff": "
|
|
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}",
|
|
210
247
|
"opera.status.qualityReport": " Quality report: {value}",
|
|
211
248
|
"opera.status.structure": " Structure:",
|
|
212
|
-
"opera.configure.invalidPhases": "Invalid phases JSON.",
|
|
213
|
-
"opera.configure.updated": "Configuration updated.",
|
|
214
|
-
"opera.upgrade.runInstallFirst": "Run 'trackops opera install' first.",
|
|
249
|
+
"opera.configure.invalidPhases": "Invalid phases JSON.",
|
|
250
|
+
"opera.configure.updated": "Configuration updated.",
|
|
251
|
+
"opera.upgrade.runInstallFirst": "Run 'trackops opera install' first.",
|
|
215
252
|
"opera.upgrade.usage": "Usage: trackops opera upgrade --stable [--reset]",
|
|
216
253
|
"opera.upgrade.legacyUnsupported": "Legacy OPERA project detected. Run 'trackops opera upgrade --stable --reset' to move it to the current stable model.",
|
|
217
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'.",
|
|
218
267
|
"postinstall.localeSet": "TrackOps set the language to '{locale}' ({source}).",
|
|
219
|
-
|
|
220
|
-
"skill.installed": "Skill '{name}' installed.",
|
|
221
|
-
"skill.removed": "Skill '{name}' uninstalled.",
|
|
222
|
-
"skill.notFound": "Skill '{name}' not found in the catalog.",
|
|
223
|
-
"skill.alreadyInstalled": "Skill '{name}' is already installed.",
|
|
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.",
|
|
224
273
|
"skill.notInstalled": "Skill '{name}' is not installed.",
|
|
225
274
|
"skill.catalogTitle": "Available skills:",
|
|
226
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}",
|
|
227
300
|
|
|
228
301
|
"cli.status.bootstrap": "Bootstrap: {status} | Locale: {locale}",
|
|
229
|
-
|
|
230
|
-
"bootstrap.
|
|
231
|
-
"bootstrap.
|
|
232
|
-
"bootstrap.
|
|
233
|
-
"bootstrap.
|
|
234
|
-
"bootstrap.
|
|
235
|
-
"bootstrap.
|
|
236
|
-
"bootstrap.
|
|
237
|
-
"bootstrap.
|
|
238
|
-
"bootstrap.
|
|
239
|
-
"bootstrap.
|
|
240
|
-
"bootstrap.
|
|
241
|
-
"bootstrap.
|
|
242
|
-
"bootstrap.
|
|
243
|
-
"bootstrap.
|
|
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",
|
|
343
|
+
"bootstrap.question.technicalLevel": "User technical level",
|
|
344
|
+
"bootstrap.question.projectState": "Current project state",
|
|
345
|
+
"bootstrap.question.docsState": "Available documentation",
|
|
346
|
+
"bootstrap.question.decisionOwnership": "Who should own key decisions",
|
|
347
|
+
"bootstrap.question.problemStatement": "Main problem to solve",
|
|
348
|
+
"bootstrap.question.targetUser": "Primary target user",
|
|
349
|
+
"bootstrap.question.desiredOutcome": "Desired outcome",
|
|
350
|
+
"bootstrap.question.externalServices": "External services (comma separated)",
|
|
351
|
+
"bootstrap.question.sourceOfTruth": "Source of truth",
|
|
352
|
+
"bootstrap.question.payload": "Delivery payload / target",
|
|
353
|
+
"bootstrap.question.behaviorRules": "Behavior rules (semicolon separated)",
|
|
244
354
|
"bootstrap.question.inputSchema": "Input schema JSON",
|
|
245
355
|
"bootstrap.question.outputSchema": "Output schema JSON",
|
|
246
356
|
"bootstrap.question.invariants": "Architectural invariants (semicolon separated)",
|
|
247
357
|
"bootstrap.question.pipeline": "Pipeline steps (semicolon separated)",
|
|
248
|
-
"bootstrap.question.templates": "Template files (comma separated)",
|
|
249
|
-
"bootstrap.question.repoTasks": "Include optional repo tasks? [y/n]",
|
|
250
|
-
"bootstrap.completed": "OPERA bootstrap completed.",
|
|
251
|
-
"bootstrap.
|
|
252
|
-
"bootstrap.
|
|
253
|
-
"bootstrap.
|
|
254
|
-
"bootstrap.
|
|
255
|
-
"bootstrap.
|
|
256
|
-
"bootstrap.
|
|
257
|
-
"bootstrap.
|
|
258
|
-
"bootstrap.
|
|
259
|
-
"bootstrap.
|
|
260
|
-
"bootstrap.
|
|
261
|
-
"bootstrap.
|
|
262
|
-
"bootstrap.
|
|
263
|
-
"bootstrap.
|
|
264
|
-
"bootstrap.
|
|
265
|
-
"bootstrap.
|
|
266
|
-
"bootstrap.
|
|
267
|
-
"bootstrap.
|
|
268
|
-
"bootstrap.
|
|
269
|
-
"bootstrap.
|
|
270
|
-
"bootstrap.
|
|
271
|
-
"bootstrap.
|
|
272
|
-
"bootstrap.acceptance.
|
|
273
|
-
"bootstrap.acceptance.
|
|
274
|
-
"bootstrap.acceptance.
|
|
358
|
+
"bootstrap.question.templates": "Template files (comma separated)",
|
|
359
|
+
"bootstrap.question.repoTasks": "Include optional repo tasks? [y/n]",
|
|
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})",
|
|
366
|
+
"bootstrap.pending": "OPERA bootstrap saved as pending. Resume with 'trackops opera bootstrap --resume'.",
|
|
367
|
+
"bootstrap.awaitingAgent": "OPERA bootstrap has been routed to the agent.",
|
|
368
|
+
"bootstrap.handoffFile": "Handoff file",
|
|
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'.",
|
|
373
|
+
"bootstrap.infer.envSourceHint": "Environment files detected",
|
|
374
|
+
"bootstrap.noneDefined": "Not defined yet.",
|
|
375
|
+
"bootstrap.pendingValue": "Pending definition.",
|
|
376
|
+
"bootstrap.servicePending": "pending",
|
|
377
|
+
"bootstrap.defaultFocus": "Complete OPERA bootstrap",
|
|
378
|
+
"bootstrap.defaultTarget": "Target delivery pending definition",
|
|
379
|
+
"bootstrap.blocker.missingData": "Core bootstrap data is still missing.",
|
|
380
|
+
"bootstrap.blocker.awaitingAgent": "Waiting for the agent handoff output.",
|
|
381
|
+
"bootstrap.history.seeded": "Seeded by OPERA bootstrap.",
|
|
382
|
+
"bootstrap.acceptance.discovery": "Discovery questions answered.",
|
|
383
|
+
"bootstrap.acceptance.schema": "Input/output schema defined in genesis.md.",
|
|
384
|
+
"bootstrap.acceptance.rules": "Behavior rules documented.",
|
|
385
|
+
"bootstrap.acceptance.plan": "Plan reviewed and accepted.",
|
|
386
|
+
"bootstrap.acceptance.intake": "The agent generated ops/bootstrap/intake.json.",
|
|
387
|
+
"bootstrap.acceptance.specDossier": "The agent generated ops/bootstrap/spec-dossier.md.",
|
|
388
|
+
"bootstrap.acceptance.resume": "OPERA ingested the context and continued.",
|
|
389
|
+
"bootstrap.acceptance.env": "Required credentials verified.",
|
|
390
|
+
"bootstrap.acceptance.tests": "Connectivity checks passing.",
|
|
275
391
|
"bootstrap.acceptance.shape": "External shapes validated against genesis.md.",
|
|
276
392
|
"bootstrap.acceptance.findings": "Findings documented.",
|
|
277
393
|
"bootstrap.acceptance.sops": "SOPs documented.",
|
|
@@ -285,10 +401,10 @@
|
|
|
285
401
|
"bootstrap.acceptance.deploy": "Deployment completed.",
|
|
286
402
|
"bootstrap.acceptance.triggers": "Triggers configured.",
|
|
287
403
|
"bootstrap.acceptance.smoke": "Smoke test passing.",
|
|
288
|
-
"bootstrap.task.bootstrap.title": "Complete OPERA bootstrap",
|
|
289
|
-
"bootstrap.task.bootstrap.summary": "Turn the installed OPERA structure into a project-specific operating model.",
|
|
290
|
-
"bootstrap.task.bootstrap.handoffSummary": "Prepare the agent handoff so an idea or partial specification becomes structured operational context.",
|
|
291
|
-
"bootstrap.task.prove.title": "Validate integrations",
|
|
404
|
+
"bootstrap.task.bootstrap.title": "Complete OPERA bootstrap",
|
|
405
|
+
"bootstrap.task.bootstrap.summary": "Turn the installed OPERA structure into a project-specific operating model.",
|
|
406
|
+
"bootstrap.task.bootstrap.handoffSummary": "Prepare the agent handoff so an idea or partial specification becomes structured operational context.",
|
|
407
|
+
"bootstrap.task.prove.title": "Validate integrations",
|
|
292
408
|
"bootstrap.task.prove.summary": "Verify credentials, connectivity, and response shapes before building further.",
|
|
293
409
|
"bootstrap.task.structure.title": "Structure the system",
|
|
294
410
|
"bootstrap.task.structure.summary": "Document SOPs, implement tools, and capture the dependency graph.",
|
|
@@ -304,21 +420,21 @@
|
|
|
304
420
|
"bootstrap.task.repoChangelog.summary": "Decide how CHANGELOG.md should be maintained in this project.",
|
|
305
421
|
"bootstrap.task.repoGithub.title": "Review GitHub governance tasks",
|
|
306
422
|
"bootstrap.task.repoGithub.summary": "Check whether repository automation or governance tasks should be enabled.",
|
|
307
|
-
"bootstrap.field.singularDesiredOutcome": "Desired outcome",
|
|
308
|
-
"bootstrap.field.desiredOutcome": "Desired outcome",
|
|
309
|
-
"bootstrap.field.problemStatement": "Problem statement",
|
|
310
|
-
"bootstrap.field.targetUser": "Target user",
|
|
311
|
-
"bootstrap.field.decisionOwnership": "Decision ownership",
|
|
312
|
-
"bootstrap.field.sourceOfTruth": "Source of truth",
|
|
313
|
-
"bootstrap.field.payload": "Payload",
|
|
314
|
-
"bootstrap.field.inputSchema": "Input schema",
|
|
315
|
-
"bootstrap.field.outputSchema": "Output schema",
|
|
316
|
-
"bootstrap.field.intakeJson": "intake.json file",
|
|
317
|
-
"bootstrap.field.specDossier": "spec-dossier.md file",
|
|
318
|
-
"bootstrap.decisionImpact": "Required to complete the OPERA bootstrap.",
|
|
319
|
-
"bootstrap.pendingDecision.handoff": "Send the TrackOps handoff to the agent",
|
|
320
|
-
"bootstrap.pendingDecision.handoffImpact": "Required so the agent can generate intake.json and spec-dossier.md.",
|
|
321
|
-
"bootstrap.finding.genesisConflictTitle": "Genesis requires manual review",
|
|
423
|
+
"bootstrap.field.singularDesiredOutcome": "Desired outcome",
|
|
424
|
+
"bootstrap.field.desiredOutcome": "Desired outcome",
|
|
425
|
+
"bootstrap.field.problemStatement": "Problem statement",
|
|
426
|
+
"bootstrap.field.targetUser": "Target user",
|
|
427
|
+
"bootstrap.field.decisionOwnership": "Decision ownership",
|
|
428
|
+
"bootstrap.field.sourceOfTruth": "Source of truth",
|
|
429
|
+
"bootstrap.field.payload": "Payload",
|
|
430
|
+
"bootstrap.field.inputSchema": "Input schema",
|
|
431
|
+
"bootstrap.field.outputSchema": "Output schema",
|
|
432
|
+
"bootstrap.field.intakeJson": "intake.json file",
|
|
433
|
+
"bootstrap.field.specDossier": "spec-dossier.md file",
|
|
434
|
+
"bootstrap.decisionImpact": "Required to complete the OPERA bootstrap.",
|
|
435
|
+
"bootstrap.pendingDecision.handoff": "Send the TrackOps handoff to the agent",
|
|
436
|
+
"bootstrap.pendingDecision.handoffImpact": "Required so the agent can generate intake.json and spec-dossier.md.",
|
|
437
|
+
"bootstrap.finding.genesisConflictTitle": "Genesis requires manual review",
|
|
322
438
|
"bootstrap.finding.genesisConflictDetail": "TrackOps detected a non-template genesis.md and stopped automatic overwrite.",
|
|
323
439
|
"bootstrap.finding.genesisConflictImpact": "Bootstrap cannot be completed until the existing constitution is reviewed.",
|
|
324
440
|
|
|
@@ -405,28 +521,56 @@
|
|
|
405
521
|
"ui.execution.stop": "Stop",
|
|
406
522
|
"ui.execution.output": "Command output",
|
|
407
523
|
"ui.execution.outputPlaceholder": "# Run a command to see its output here...",
|
|
408
|
-
"ui.execution.started": "Started",
|
|
409
|
-
"ui.execution.running": "Running...",
|
|
410
|
-
"ui.execution.quick.status": "status",
|
|
411
|
-
"ui.execution.quick.sync": "sync docs",
|
|
412
|
-
"ui.execution.quick.next": "next tasks",
|
|
413
|
-
"ui.execution.quick.repo": "refresh repo",
|
|
414
|
-
"ui.settings.workspaceTitle": "Workspace",
|
|
415
|
-
"ui.settings.workspaceRoot": "Workspace root",
|
|
416
|
-
"ui.settings.appRoot": "App root",
|
|
417
|
-
"ui.settings.opsRoot": "Ops root",
|
|
418
|
-
"ui.settings.envTitle": "Environment",
|
|
419
|
-
"ui.settings.envHealthyBadge": "Ready",
|
|
420
|
-
"ui.settings.envMissingBadge": "{count} missing",
|
|
421
|
-
"ui.settings.envBridgeMode": "Bridge mode",
|
|
422
|
-
"ui.settings.envRootFile": "Root .env",
|
|
423
|
-
"ui.settings.envExampleFile": ".env.example",
|
|
424
|
-
"ui.settings.envAppBridge": "app/.env bridge",
|
|
425
|
-
"ui.settings.envRequiredKeys": "Required keys",
|
|
426
|
-
"ui.settings.envPresentKeys": "Present keys",
|
|
427
|
-
"ui.settings.envMissingKeys": "Missing keys",
|
|
428
|
-
"ui.settings.envNoMissing": "None",
|
|
429
|
-
"ui.settings.envLastAudit": "Last audit",
|
|
430
|
-
"ui.settings.envSync": "Sync env",
|
|
431
|
-
"ui.settings.envSynced": "Environment synced."
|
|
432
|
-
|
|
524
|
+
"ui.execution.started": "Started",
|
|
525
|
+
"ui.execution.running": "Running...",
|
|
526
|
+
"ui.execution.quick.status": "status",
|
|
527
|
+
"ui.execution.quick.sync": "sync docs",
|
|
528
|
+
"ui.execution.quick.next": "next tasks",
|
|
529
|
+
"ui.execution.quick.repo": "refresh repo",
|
|
530
|
+
"ui.settings.workspaceTitle": "Workspace",
|
|
531
|
+
"ui.settings.workspaceRoot": "Workspace root",
|
|
532
|
+
"ui.settings.appRoot": "App root",
|
|
533
|
+
"ui.settings.opsRoot": "Ops root",
|
|
534
|
+
"ui.settings.envTitle": "Environment",
|
|
535
|
+
"ui.settings.envHealthyBadge": "Ready",
|
|
536
|
+
"ui.settings.envMissingBadge": "{count} missing",
|
|
537
|
+
"ui.settings.envBridgeMode": "Bridge mode",
|
|
538
|
+
"ui.settings.envRootFile": "Root .env",
|
|
539
|
+
"ui.settings.envExampleFile": ".env.example",
|
|
540
|
+
"ui.settings.envAppBridge": "app/.env bridge",
|
|
541
|
+
"ui.settings.envRequiredKeys": "Required keys",
|
|
542
|
+
"ui.settings.envPresentKeys": "Present keys",
|
|
543
|
+
"ui.settings.envMissingKeys": "Missing keys",
|
|
544
|
+
"ui.settings.envNoMissing": "None",
|
|
545
|
+
"ui.settings.envLastAudit": "Last audit",
|
|
546
|
+
"ui.settings.envSync": "Sync env",
|
|
547
|
+
"ui.settings.envSynced": "Environment synced.",
|
|
548
|
+
|
|
549
|
+
"handoff.title": "OPERA agent handoff",
|
|
550
|
+
"handoff.skillInstruction": "Use `project-starter-skill` as a discovery and structuring skill for this project.",
|
|
551
|
+
"handoff.section.userProfile": "User profile",
|
|
552
|
+
"handoff.label.technicalLevel": "Technical level",
|
|
553
|
+
"handoff.label.explanationMode": "Explanation mode",
|
|
554
|
+
"handoff.label.decisionOwnership": "Decision ownership",
|
|
555
|
+
"handoff.label.preferredLanguage": "Preferred language",
|
|
556
|
+
"handoff.section.projectState": "Project state",
|
|
557
|
+
"handoff.label.projectState": "Project state",
|
|
558
|
+
"handoff.label.documentationState": "Documentation state",
|
|
559
|
+
"handoff.section.whatToDo": "What to do",
|
|
560
|
+
"handoff.instruction.startFromUser": "Start from the user, not from architecture assumptions.",
|
|
561
|
+
"handoff.instruction.adaptDepth": "Adapt depth and language to the user's technical level.",
|
|
562
|
+
"handoff.instruction.readDocs": "If documentation exists, read it, summarize it, and consolidate it.",
|
|
563
|
+
"handoff.instruction.helpSpec": "If documentation does not exist, help the user turn the idea into a workable project specification.",
|
|
564
|
+
"handoff.instruction.writeIntake": "Write `ops/bootstrap/intake.json` with the structured discovery output.",
|
|
565
|
+
"handoff.instruction.writeSpec": "Write `ops/bootstrap/spec-dossier.md` with the narrative or technical specification that OPERA will ingest.",
|
|
566
|
+
"handoff.instruction.writeQuestions": "Write `ops/bootstrap/open-questions.md` if important uncertainties remain.",
|
|
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).",
|
|
570
|
+
"handoff.instruction.respondInLanguage": "Respond to the user in {language}.",
|
|
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."
|
|
576
|
+
}
|