trackops 1.0.0 → 1.1.0
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 +341 -232
- package/bin/trackops.js +102 -70
- package/lib/config.js +260 -35
- package/lib/control.js +518 -475
- package/lib/env.js +227 -0
- package/lib/i18n.js +61 -53
- package/lib/init.js +146 -55
- package/lib/locale.js +63 -0
- package/lib/opera-bootstrap.js +523 -0
- package/lib/opera.js +319 -170
- package/lib/registry.js +27 -13
- package/lib/release.js +56 -0
- package/lib/resources.js +42 -0
- package/lib/server.js +912 -418
- package/lib/skills.js +148 -124
- package/lib/workspace.js +260 -0
- package/locales/en.json +331 -139
- package/locales/es.json +331 -139
- package/package.json +14 -3
- package/scripts/skills-marketplace-smoke.js +124 -0
- package/scripts/smoke-tests.js +445 -0
- package/scripts/sync-skill-version.js +21 -0
- package/scripts/validate-skill.js +88 -0
- package/skills/trackops/SKILL.md +64 -0
- package/skills/trackops/agents/openai.yaml +3 -0
- package/skills/trackops/references/activation.md +39 -0
- package/skills/trackops/references/troubleshooting.md +34 -0
- package/skills/trackops/references/workflow.md +20 -0
- package/skills/trackops/scripts/bootstrap-trackops.js +201 -0
- package/skills/trackops/skill.json +29 -0
- package/templates/etapa/agent.md +2 -2
- package/templates/etapa/references/etapa-cycle.md +1 -1
- package/templates/opera/agent.md +1 -1
- package/templates/opera/en/agent.md +26 -0
- package/templates/opera/en/genesis.md +79 -0
- package/templates/opera/en/references/autonomy-and-recovery.md +23 -0
- package/templates/opera/en/references/opera-cycle.md +62 -0
- package/templates/opera/en/registry.md +28 -0
- package/templates/opera/en/router.md +39 -0
- package/templates/opera/genesis.md +79 -94
- package/templates/skills/changelog-updater/locales/en/SKILL.md +11 -0
- package/templates/skills/commiter/locales/en/SKILL.md +11 -0
- package/templates/skills/project-starter-skill/SKILL.md +5 -3
- package/templates/skills/project-starter-skill/locales/en/SKILL.md +24 -0
- package/ui/css/base.css +266 -0
- package/ui/css/charts.css +327 -0
- package/ui/css/components.css +570 -0
- package/ui/css/panels.css +956 -0
- package/ui/css/tokens.css +227 -0
- package/ui/favicon.svg +5 -0
- package/ui/index.html +91 -351
- package/ui/js/api.js +220 -0
- package/ui/js/app.js +200 -0
- package/ui/js/console-logger.js +172 -0
- package/ui/js/i18n.js +14 -0
- package/ui/js/icons.js +104 -0
- package/ui/js/onboarding.js +439 -0
- package/ui/js/router.js +125 -0
- package/ui/js/state.js +130 -0
- package/ui/js/theme.js +100 -0
- package/ui/js/time-tracker.js +248 -0
- package/ui/js/utils.js +175 -0
- package/ui/js/views/board.js +255 -0
- package/ui/js/views/execution.js +256 -0
- package/ui/js/views/flash.js +47 -0
- package/ui/js/views/insights.js +340 -0
- package/ui/js/views/overview.js +365 -0
- package/ui/js/views/settings.js +381 -0
- package/ui/js/views/sidebar.js +131 -0
- package/ui/js/views/skills.js +163 -0
- package/ui/js/views/tasks.js +406 -0
- package/ui/js/views/topbar.js +239 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "trackops"
|
|
3
|
+
description: "Global TrackOps skill that prepares your agent for local project orchestration and operational automation, ensures the runtime on first use, and guides per-project activation with optional OPERA."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "1.1.0"
|
|
6
|
+
type: "global"
|
|
7
|
+
triggers:
|
|
8
|
+
- "install trackops"
|
|
9
|
+
- "skills.sh"
|
|
10
|
+
- "bootstrap trackops"
|
|
11
|
+
- "trackops init"
|
|
12
|
+
- "trackops opera install"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# TrackOps
|
|
16
|
+
|
|
17
|
+
Use this skill in two layers:
|
|
18
|
+
|
|
19
|
+
1. Global skill layer
|
|
20
|
+
Install it with:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx skills add Baxahaun/trackops --skill trackops --full-depth --global --agent codex -y
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Replace `codex` with any supported target: `antigravity`, `claude-code`, `codex`, `cursor`, `gemini-cli`, `github-copilot`, or `kiro-cli`.
|
|
27
|
+
|
|
28
|
+
Before relying on the CLI, run:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node scripts/bootstrap-trackops.js
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
2. Local project layer
|
|
35
|
+
Activate TrackOps inside the current repository with:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
trackops init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Add OPERA only when explicitly requested:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
trackops opera install
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Core rules:
|
|
48
|
+
|
|
49
|
+
- Treat the global skill install as non-invasive.
|
|
50
|
+
- In split workspaces, use `ops/project_control.json` as the operational source of truth.
|
|
51
|
+
- In legacy repos, use `project_control.json` at the repository root.
|
|
52
|
+
- Prefer `trackops status`, `trackops next`, and `trackops sync` over hand-editing generated docs.
|
|
53
|
+
- Treat `trackops init --with-opera` as a shortcut, not as the primary mental model.
|
|
54
|
+
- TrackOps manages `/.env` and `/.env.example` at workspace root. Do not print or persist secret values.
|
|
55
|
+
- Remember that skills installs from committed Git state.
|
|
56
|
+
|
|
57
|
+
Read references only when needed:
|
|
58
|
+
|
|
59
|
+
- `references/activation.md`
|
|
60
|
+
for install and activation flow
|
|
61
|
+
- `references/workflow.md`
|
|
62
|
+
for day-to-day repo operation
|
|
63
|
+
- `references/troubleshooting.md`
|
|
64
|
+
for bootstrap or environment issues
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Activation
|
|
2
|
+
|
|
3
|
+
## Global install
|
|
4
|
+
|
|
5
|
+
The marketplace skill prepares TrackOps globally for the agent. It must not create repo files by itself.
|
|
6
|
+
|
|
7
|
+
Install it with:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx skills add Baxahaun/trackops --skill trackops --full-depth --global --agent codex -y
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Replace `codex` with any supported target: `antigravity`, `claude-code`, `codex`, `cursor`, `gemini-cli`, `github-copilot`, or `kiro-cli`.
|
|
14
|
+
|
|
15
|
+
Before using TrackOps commands, run:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/bootstrap-trackops.js
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
That bootstrap validates prerequisites, installs or updates the TrackOps runtime, and records state in `~/.trackops/runtime.json`.
|
|
22
|
+
|
|
23
|
+
## Local activation
|
|
24
|
+
|
|
25
|
+
Inside a repository, the normal flow is:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
trackops init
|
|
29
|
+
trackops opera install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Rules:
|
|
33
|
+
|
|
34
|
+
- Use `trackops init` when the repo is not yet managed by TrackOps.
|
|
35
|
+
- By default, `trackops init` creates a split workspace with `app/`, `ops/`, `/.env`, `/.env.example`, and `.trackops-workspace.json`.
|
|
36
|
+
- Use `trackops opera install` only after `trackops init` and only when the user wants OPERA.
|
|
37
|
+
- Use `trackops init --with-opera` only as an explicit shortcut.
|
|
38
|
+
- Use `trackops init --legacy-layout` only for compatibility with the old single-root layout.
|
|
39
|
+
- Never assume that a global skill install authorizes local repo mutations by default.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Missing prerequisites
|
|
4
|
+
|
|
5
|
+
- If Node is missing or older than 18, install Node 18+ first.
|
|
6
|
+
- If npm is missing, install a Node distribution that includes npm.
|
|
7
|
+
|
|
8
|
+
## skills cannot find the TrackOps skill
|
|
9
|
+
|
|
10
|
+
- Install from the repository root:
|
|
11
|
+
`npx skills add Baxahaun/trackops --skill trackops --full-depth --global --agent codex -y`
|
|
12
|
+
- Confirm the remote repository already contains the latest committed skill changes.
|
|
13
|
+
- Remember that skills installs from committed Git state, not from uncommitted local changes.
|
|
14
|
+
|
|
15
|
+
## Global npm install failed
|
|
16
|
+
|
|
17
|
+
- Re-run `node scripts/bootstrap-trackops.js` and inspect stderr.
|
|
18
|
+
- If npm global permissions are blocked, configure a user-writable npm prefix instead of relying on `sudo`.
|
|
19
|
+
|
|
20
|
+
## Runtime cannot be verified
|
|
21
|
+
|
|
22
|
+
If installation succeeds but `trackops` is still not executable:
|
|
23
|
+
|
|
24
|
+
- Check whether the npm global bin directory is on `PATH`.
|
|
25
|
+
- Re-open the terminal after updating shell profile settings.
|
|
26
|
+
- Re-run `node scripts/bootstrap-trackops.js` once `trackops --version` works.
|
|
27
|
+
|
|
28
|
+
## Workspace environment looks inconsistent
|
|
29
|
+
|
|
30
|
+
If a split workspace is active and tools do not see the expected environment file:
|
|
31
|
+
|
|
32
|
+
- Run `trackops env status` to inspect required, present, and missing keys without exposing values.
|
|
33
|
+
- Run `trackops env sync` to recreate `/.env`, `/.env.example`, and the `app/.env` bridge.
|
|
34
|
+
- If bridge mode is `copy`, do not edit `app/.env` directly; TrackOps regenerates it from the root `.env`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Workflow
|
|
2
|
+
|
|
3
|
+
Once TrackOps is active in a repository, operate in this order:
|
|
4
|
+
|
|
5
|
+
1. Run `trackops status` to inspect focus, phase, blockers, and repo state.
|
|
6
|
+
2. Run `trackops next` to identify the next ready task.
|
|
7
|
+
3. Update task state with `trackops task ...` as work progresses.
|
|
8
|
+
4. Run `trackops sync` after meaningful changes so generated docs stay aligned.
|
|
9
|
+
5. Run `trackops env status` when the project depends on credentials or external services.
|
|
10
|
+
|
|
11
|
+
Operational rules:
|
|
12
|
+
|
|
13
|
+
- In split workspaces, use `ops/project_control.json` as the source of truth.
|
|
14
|
+
- In legacy repos, use `project_control.json` at repo root.
|
|
15
|
+
- In split workspaces, generated operational docs live under `ops/`.
|
|
16
|
+
- Product code lives under `app/`.
|
|
17
|
+
- Use `/.env` for real secrets and `/.env.example` for the public environment contract.
|
|
18
|
+
- `app/.env` is only a compatibility bridge.
|
|
19
|
+
- If OPERA is installed, use `ops/genesis.md`, `ops/.agent/hub/`, and `ops/.agents/skills/_registry.md` as managed framework artifacts.
|
|
20
|
+
- Keep the global skill layer separate from the local project layer.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const os = require("os");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const { spawnSync } = require("child_process");
|
|
7
|
+
|
|
8
|
+
const EXIT_CODES = {
|
|
9
|
+
READY: 0,
|
|
10
|
+
PREREQ: 1,
|
|
11
|
+
INSTALL: 2,
|
|
12
|
+
UNVERIFIABLE: 3,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
function getNpmCommand() {
|
|
16
|
+
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function readSkillConfig() {
|
|
20
|
+
const skillFile = path.join(__dirname, "..", "skill.json");
|
|
21
|
+
return JSON.parse(fs.readFileSync(skillFile, "utf8"));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function getHomeDir() {
|
|
25
|
+
return process.env.TRACKOPS_BOOTSTRAP_HOME || os.homedir();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function getPrefixOverride() {
|
|
29
|
+
return process.env.TRACKOPS_BOOTSTRAP_PREFIX || null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function getInstallSource(config) {
|
|
33
|
+
return process.env.TRACKOPS_BOOTSTRAP_INSTALL_SOURCE || `${config.npmPackage}@${config.trackopsVersion}`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function parseMajor(version) {
|
|
37
|
+
const major = Number(String(version || "").split(".")[0]);
|
|
38
|
+
return Number.isFinite(major) ? major : null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function hasSupportedNode() {
|
|
42
|
+
const major = parseMajor(process.versions.node);
|
|
43
|
+
return major != null && major >= 18;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function spawnChecked(command, args, extra = {}) {
|
|
47
|
+
const shell = process.platform === "win32" && /\.(cmd|bat)$/i.test(command);
|
|
48
|
+
return spawnSync(command, args, {
|
|
49
|
+
encoding: "utf8",
|
|
50
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
51
|
+
shell,
|
|
52
|
+
...extra,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function spawnNpm(args, extra = {}) {
|
|
57
|
+
return spawnSync(getNpmCommand(), args, {
|
|
58
|
+
encoding: "utf8",
|
|
59
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
60
|
+
shell: process.platform === "win32",
|
|
61
|
+
...extra,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function resolvePrefixExecutables(prefix) {
|
|
66
|
+
if (!prefix) return [];
|
|
67
|
+
if (process.platform === "win32") {
|
|
68
|
+
return [
|
|
69
|
+
path.join(prefix, "trackops.cmd"),
|
|
70
|
+
path.join(prefix, "trackops.exe"),
|
|
71
|
+
path.join(prefix, "trackops"),
|
|
72
|
+
];
|
|
73
|
+
}
|
|
74
|
+
return [path.join(prefix, "bin", "trackops")];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function buildVerificationTargets(prefix) {
|
|
78
|
+
const targets = [{ command: "trackops", via: "path" }];
|
|
79
|
+
for (const candidate of resolvePrefixExecutables(prefix)) {
|
|
80
|
+
targets.push({ command: candidate, via: "prefix" });
|
|
81
|
+
}
|
|
82
|
+
return targets;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function readInstalledVersion(prefix) {
|
|
86
|
+
for (const target of buildVerificationTargets(prefix)) {
|
|
87
|
+
const result = spawnChecked(target.command, ["--version"]);
|
|
88
|
+
if (result.error || result.status !== 0) continue;
|
|
89
|
+
const version = String(result.stdout || "").trim();
|
|
90
|
+
if (version) {
|
|
91
|
+
return { version, command: target.command, via: target.via };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function verifyRuntime(expectedVersion, prefix) {
|
|
98
|
+
const installed = readInstalledVersion(prefix);
|
|
99
|
+
if (!installed) {
|
|
100
|
+
return { ok: false, reason: "missing-command" };
|
|
101
|
+
}
|
|
102
|
+
if (installed.version !== expectedVersion) {
|
|
103
|
+
return { ok: false, reason: "version-drift", installed };
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const help = spawnChecked(installed.command, ["help"]);
|
|
107
|
+
if (help.error || help.status !== 0) {
|
|
108
|
+
return { ok: false, reason: "help-failed", installed };
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return { ok: true, installed };
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function ensureNpmAvailable() {
|
|
115
|
+
const result = spawnNpm(["--version"]);
|
|
116
|
+
return !result.error && result.status === 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function runInstall(config, prefix) {
|
|
120
|
+
const installSource = getInstallSource(config);
|
|
121
|
+
const args = ["install", "-g"];
|
|
122
|
+
if (prefix) {
|
|
123
|
+
args.push("--prefix", prefix);
|
|
124
|
+
}
|
|
125
|
+
args.push(installSource);
|
|
126
|
+
|
|
127
|
+
const result = spawnNpm(args);
|
|
128
|
+
return { ...result, installSource };
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function writeRuntimeStamp(config, verification) {
|
|
132
|
+
const runtimeDir = path.join(getHomeDir(), ".trackops");
|
|
133
|
+
const runtimeFile = path.join(runtimeDir, "runtime.json");
|
|
134
|
+
fs.mkdirSync(runtimeDir, { recursive: true });
|
|
135
|
+
const payload = {
|
|
136
|
+
skill: config.name,
|
|
137
|
+
skillVersion: config.skillVersion,
|
|
138
|
+
runtimePackage: config.npmPackage,
|
|
139
|
+
runtimeVersion: config.trackopsVersion,
|
|
140
|
+
bootstrapPolicy: config.bootstrapPolicy,
|
|
141
|
+
supportedAgentsV1: config.supportedAgentsV1,
|
|
142
|
+
verifiedAt: new Date().toISOString(),
|
|
143
|
+
verifiedWith: verification.installed.via,
|
|
144
|
+
executable: verification.installed.command,
|
|
145
|
+
};
|
|
146
|
+
fs.writeFileSync(runtimeFile, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function printInstallGuidance(prefix) {
|
|
150
|
+
if (prefix) {
|
|
151
|
+
console.error(`TrackOps was installed under the custom prefix '${prefix}'.`);
|
|
152
|
+
console.error("Use that prefix's executable or add it to PATH before trying again.");
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
console.error("TrackOps was installed but could not be executed from PATH.");
|
|
157
|
+
console.error("Add your npm global bin directory to PATH, reopen the terminal, and retry.");
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function main() {
|
|
161
|
+
const config = readSkillConfig();
|
|
162
|
+
const prefix = getPrefixOverride();
|
|
163
|
+
|
|
164
|
+
if (!hasSupportedNode()) {
|
|
165
|
+
console.error("TrackOps requires Node.js 18 or newer.");
|
|
166
|
+
process.exit(EXIT_CODES.PREREQ);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (!ensureNpmAvailable()) {
|
|
170
|
+
console.error("npm is required to bootstrap the TrackOps runtime.");
|
|
171
|
+
process.exit(EXIT_CODES.PREREQ);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const current = verifyRuntime(config.trackopsVersion, prefix);
|
|
175
|
+
if (current.ok) {
|
|
176
|
+
writeRuntimeStamp(config, current);
|
|
177
|
+
console.log(`TrackOps runtime ${config.trackopsVersion} is already ready.`);
|
|
178
|
+
process.exit(EXIT_CODES.READY);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const install = runInstall(config, prefix);
|
|
182
|
+
if (install.error || install.status !== 0) {
|
|
183
|
+
console.error(`Failed to install ${install.installSource}.`);
|
|
184
|
+
if (install.stderr) {
|
|
185
|
+
console.error(install.stderr.trim());
|
|
186
|
+
}
|
|
187
|
+
process.exit(EXIT_CODES.INSTALL);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
const verification = verifyRuntime(config.trackopsVersion, prefix);
|
|
191
|
+
if (!verification.ok) {
|
|
192
|
+
printInstallGuidance(prefix);
|
|
193
|
+
process.exit(EXIT_CODES.UNVERIFIABLE);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
writeRuntimeStamp(config, verification);
|
|
197
|
+
console.log(`TrackOps runtime ${config.trackopsVersion} is ready.`);
|
|
198
|
+
process.exit(EXIT_CODES.READY);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
main();
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "trackops",
|
|
3
|
+
"shortDescription": "Global TrackOps skill for local project orchestration and operational automation with AI agents.",
|
|
4
|
+
"description": "Installs TrackOps as a global skill, prepares your agent for local project orchestration, ensures the runtime on first use, and guides per-project activation with optional OPERA.",
|
|
5
|
+
"skillVersion": "1.1.0",
|
|
6
|
+
"trackopsVersion": "1.1.0",
|
|
7
|
+
"npmPackage": "trackops",
|
|
8
|
+
"bootstrapPolicy": "first_use",
|
|
9
|
+
"supportedAgentsV1": [
|
|
10
|
+
"antigravity",
|
|
11
|
+
"claude-code",
|
|
12
|
+
"codex",
|
|
13
|
+
"cursor",
|
|
14
|
+
"gemini-cli",
|
|
15
|
+
"github-copilot",
|
|
16
|
+
"kiro-cli"
|
|
17
|
+
],
|
|
18
|
+
"distribution": {
|
|
19
|
+
"source": "Baxahaun/trackops",
|
|
20
|
+
"skill": "trackops",
|
|
21
|
+
"fullDepth": true
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"provider": "github",
|
|
25
|
+
"owner": "Baxahaun",
|
|
26
|
+
"repo": "trackops",
|
|
27
|
+
"skillPath": "skills/trackops"
|
|
28
|
+
}
|
|
29
|
+
}
|
package/templates/etapa/agent.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Agente del Proyecto: {{PROJECT_NAME}}
|
|
2
2
|
|
|
3
3
|
## Identidad
|
|
4
|
-
Eres el agente principal del proyecto **{{PROJECT_NAME}}**.
|
|
4
|
+
Eres el agente principal del proyecto **{{PROJECT_NAME}}**. Este template existe por compatibilidad heredada y debe operar bajo el protocolo O.P.E.R.A. v3.0.
|
|
5
5
|
|
|
6
6
|
## Fuente de Verdad
|
|
7
7
|
Tu fuente de verdad es `genesis.md`. Antes de tomar cualquier decisión, consulta este archivo.
|
|
@@ -14,7 +14,7 @@ Para el seguimiento operativo y el estado del backlog, usa `project_control.json
|
|
|
14
14
|
- No edites manualmente `task_plan.md`, `progress.md` ni `findings.md`; se regeneran con `trackops sync`.
|
|
15
15
|
|
|
16
16
|
## Skills Disponibles
|
|
17
|
-
Consulta `.
|
|
17
|
+
Consulta `.agents/skills/_registry.md` para ver las skills instaladas.
|
|
18
18
|
También puedes buscar nuevas skills con `trackops skill catalog`.
|
|
19
19
|
|
|
20
20
|
## Ciclo de Trabajo
|
package/templates/opera/agent.md
CHANGED
|
@@ -14,7 +14,7 @@ Para el seguimiento operativo y el estado del backlog, usa `project_control.json
|
|
|
14
14
|
- No edites manualmente `task_plan.md`, `progress.md` ni `findings.md`; se regeneran con `trackops sync`.
|
|
15
15
|
|
|
16
16
|
## Skills Disponibles
|
|
17
|
-
Consulta `.
|
|
17
|
+
Consulta `.agents/skills/_registry.md` para ver las skills instaladas.
|
|
18
18
|
También puedes buscar nuevas skills con `trackops skill catalog`.
|
|
19
19
|
|
|
20
20
|
## Ciclo de Trabajo
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Project Agent: {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
## Identity
|
|
4
|
+
You are the primary agent for **{{PROJECT_NAME}}**. You operate under the O.P.E.R.A. v3.0 protocol.
|
|
5
|
+
|
|
6
|
+
## Source of Truth
|
|
7
|
+
Your source of truth is `genesis.md`. Before making any architectural or implementation decision, read it first.
|
|
8
|
+
For operational tracking and backlog state, use `project_control.json`.
|
|
9
|
+
|
|
10
|
+
## Behavior
|
|
11
|
+
- Follow the behavior rules defined in `genesis.md`.
|
|
12
|
+
- Respect the autonomy matrix to determine which actions are allowed.
|
|
13
|
+
- Manage tasks and states from `project_control.json`.
|
|
14
|
+
- Do not edit `task_plan.md`, `progress.md`, or `findings.md` manually; regenerate them with `trackops sync`.
|
|
15
|
+
|
|
16
|
+
## Available Skills
|
|
17
|
+
Check `.agents/skills/_registry.md` to see installed skills.
|
|
18
|
+
You can also discover new skills with `trackops skill catalog`.
|
|
19
|
+
|
|
20
|
+
## Work Cycle
|
|
21
|
+
1. Run `trackops status` at the beginning of each work block.
|
|
22
|
+
2. Read `genesis.md` to understand the data and rules.
|
|
23
|
+
3. Use `trackops next` to inspect the prioritized queue.
|
|
24
|
+
4. Before implementing, mark the task with `trackops task start <task-id>`.
|
|
25
|
+
5. Use the router in `.agent/hub/router.md` to choose the right skill.
|
|
26
|
+
6. When you finish, move the task to `review`, `complete`, or `block`, then run `trackops sync`.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} — Genesis
|
|
2
|
+
|
|
3
|
+
> **The Constitution of the project.** This document is the source of truth. Before making any architectural or implementation decision, consult this file. If a script contradicts what is defined here, the script is wrong.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Desired Outcome
|
|
8
|
+
|
|
9
|
+
_What is the single desired outcome of this project?_
|
|
10
|
+
|
|
11
|
+
> {{DESIRED_OUTCOME}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. External Integrations
|
|
16
|
+
|
|
17
|
+
_Which external services do we need? Are credentials ready?_
|
|
18
|
+
|
|
19
|
+
| Service | Status | Key / Config |
|
|
20
|
+
|---------|--------|--------------|
|
|
21
|
+
{{SERVICES_TABLE}}
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 3. Source of Truth
|
|
26
|
+
|
|
27
|
+
_Where does the primary data live?_
|
|
28
|
+
|
|
29
|
+
> {{SOURCE_OF_TRUTH}}
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 4. Payload
|
|
34
|
+
|
|
35
|
+
_How and where should the final result be delivered?_
|
|
36
|
+
|
|
37
|
+
> {{PAYLOAD}}
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 5. Behavior Rules
|
|
42
|
+
|
|
43
|
+
_Domain constraints, tone, and specific rules._
|
|
44
|
+
|
|
45
|
+
{{BEHAVIOR_RULES}}
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Data Schema
|
|
50
|
+
|
|
51
|
+
> **Data-first rule**: this schema must exist before any code is written.
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{{DATA_SCHEMA}}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Architectural Invariants
|
|
60
|
+
|
|
61
|
+
_Non-negotiable technical decisions. Changing them requires explicit approval._
|
|
62
|
+
|
|
63
|
+
{{ARCHITECTURAL_INVARIANTS}}
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Pipeline
|
|
68
|
+
|
|
69
|
+
_Document the dependency graph between tools._
|
|
70
|
+
|
|
71
|
+
{{PIPELINE_ITEMS}}
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Templates
|
|
76
|
+
|
|
77
|
+
_References to output templates defined under `templates/`._
|
|
78
|
+
|
|
79
|
+
{{TEMPLATE_ITEMS}}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Autonomy and Recovery
|
|
2
|
+
|
|
3
|
+
Use this reference to decide when the agent can continue autonomously and when it must stop for confirmation.
|
|
4
|
+
|
|
5
|
+
## Red level
|
|
6
|
+
|
|
7
|
+
Ask for confirmation before:
|
|
8
|
+
- Changing `genesis.md` in a way that alters the contract.
|
|
9
|
+
- Deleting persistent data.
|
|
10
|
+
- Creating repositories or external resources.
|
|
11
|
+
- Deploying to production.
|
|
12
|
+
|
|
13
|
+
## Green level
|
|
14
|
+
|
|
15
|
+
Proceed autonomously for:
|
|
16
|
+
- Reading and editing local source files.
|
|
17
|
+
- Running tests and checks.
|
|
18
|
+
- Updating operational docs.
|
|
19
|
+
- Repairing deterministic errors after a bounded number of attempts.
|
|
20
|
+
|
|
21
|
+
## Recovery rule
|
|
22
|
+
|
|
23
|
+
If a later phase invalidates an earlier decision, document the proposed change first, request approval, and only then update `genesis.md` and the operational record.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# The O.P.E.R.A. Cycle — Complete Reference
|
|
2
|
+
|
|
3
|
+
This document describes each phase, its rules, its procedures, and its Definition of Done.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## O — Orchestrate
|
|
8
|
+
|
|
9
|
+
Answer the five discovery questions, define the input/output schema in `genesis.md`, document behavior rules, and make sure the plan is approved before moving forward.
|
|
10
|
+
|
|
11
|
+
### Definition of Done
|
|
12
|
+
- [ ] Discovery questions answered.
|
|
13
|
+
- [ ] Input/output schema defined in `genesis.md`.
|
|
14
|
+
- [ ] Behavior rules documented in `genesis.md`.
|
|
15
|
+
- [ ] `task_plan.md` reviewed and accepted.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## P — Prove
|
|
20
|
+
|
|
21
|
+
Validate credentials, run minimal connectivity checks, and confirm that external systems return data that matches the schema in `genesis.md`.
|
|
22
|
+
|
|
23
|
+
### Definition of Done
|
|
24
|
+
- [ ] Required credentials verified.
|
|
25
|
+
- [ ] Connectivity tests executed and passing.
|
|
26
|
+
- [ ] Response shapes validated against `genesis.md`.
|
|
27
|
+
- [ ] Findings documented.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## E — Establish
|
|
32
|
+
|
|
33
|
+
Build the three-layer structure: SOPs in `architecture/`, atomic tools in `tools/`, and explicit dependency flow in `genesis.md`.
|
|
34
|
+
|
|
35
|
+
### Definition of Done
|
|
36
|
+
- [ ] SOPs written.
|
|
37
|
+
- [ ] Tools implemented.
|
|
38
|
+
- [ ] Dependency graph documented.
|
|
39
|
+
- [ ] Integration tests passing.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## R — Refine
|
|
44
|
+
|
|
45
|
+
Validate outputs against templates and ensure delivery formats match the expected payload.
|
|
46
|
+
|
|
47
|
+
### Definition of Done
|
|
48
|
+
- [ ] Outputs validated against templates.
|
|
49
|
+
- [ ] Delivery formats reviewed.
|
|
50
|
+
- [ ] UI review completed when applicable.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## A — Automate
|
|
55
|
+
|
|
56
|
+
Clean temporary artifacts, configure triggers, deploy the final logic, and run a smoke test in the target environment.
|
|
57
|
+
|
|
58
|
+
### Definition of Done
|
|
59
|
+
- [ ] `.tmp/` cleaned.
|
|
60
|
+
- [ ] Deployment completed.
|
|
61
|
+
- [ ] Triggers configured.
|
|
62
|
+
- [ ] Smoke test passing.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Skills Registry — {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
> Index of installed skills in this project. Managed automatically by `trackops skill`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Installed Skills
|
|
8
|
+
|
|
9
|
+
_No skills installed yet. Use `trackops skill install <name>` to add one._
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## How to Use a Skill
|
|
14
|
+
|
|
15
|
+
1. Identify the context in `.agent/hub/router.md`.
|
|
16
|
+
2. Open the corresponding `SKILL.md`.
|
|
17
|
+
3. Follow the workflow defined in that skill.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Management
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
trackops skill list
|
|
25
|
+
trackops skill catalog
|
|
26
|
+
trackops skill install <name>
|
|
27
|
+
trackops skill remove <name>
|
|
28
|
+
```
|