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.
Files changed (72) hide show
  1. package/README.md +341 -232
  2. package/bin/trackops.js +102 -70
  3. package/lib/config.js +260 -35
  4. package/lib/control.js +518 -475
  5. package/lib/env.js +227 -0
  6. package/lib/i18n.js +61 -53
  7. package/lib/init.js +146 -55
  8. package/lib/locale.js +63 -0
  9. package/lib/opera-bootstrap.js +523 -0
  10. package/lib/opera.js +319 -170
  11. package/lib/registry.js +27 -13
  12. package/lib/release.js +56 -0
  13. package/lib/resources.js +42 -0
  14. package/lib/server.js +912 -418
  15. package/lib/skills.js +148 -124
  16. package/lib/workspace.js +260 -0
  17. package/locales/en.json +331 -139
  18. package/locales/es.json +331 -139
  19. package/package.json +14 -3
  20. package/scripts/skills-marketplace-smoke.js +124 -0
  21. package/scripts/smoke-tests.js +445 -0
  22. package/scripts/sync-skill-version.js +21 -0
  23. package/scripts/validate-skill.js +88 -0
  24. package/skills/trackops/SKILL.md +64 -0
  25. package/skills/trackops/agents/openai.yaml +3 -0
  26. package/skills/trackops/references/activation.md +39 -0
  27. package/skills/trackops/references/troubleshooting.md +34 -0
  28. package/skills/trackops/references/workflow.md +20 -0
  29. package/skills/trackops/scripts/bootstrap-trackops.js +201 -0
  30. package/skills/trackops/skill.json +29 -0
  31. package/templates/etapa/agent.md +2 -2
  32. package/templates/etapa/references/etapa-cycle.md +1 -1
  33. package/templates/opera/agent.md +1 -1
  34. package/templates/opera/en/agent.md +26 -0
  35. package/templates/opera/en/genesis.md +79 -0
  36. package/templates/opera/en/references/autonomy-and-recovery.md +23 -0
  37. package/templates/opera/en/references/opera-cycle.md +62 -0
  38. package/templates/opera/en/registry.md +28 -0
  39. package/templates/opera/en/router.md +39 -0
  40. package/templates/opera/genesis.md +79 -94
  41. package/templates/skills/changelog-updater/locales/en/SKILL.md +11 -0
  42. package/templates/skills/commiter/locales/en/SKILL.md +11 -0
  43. package/templates/skills/project-starter-skill/SKILL.md +5 -3
  44. package/templates/skills/project-starter-skill/locales/en/SKILL.md +24 -0
  45. package/ui/css/base.css +266 -0
  46. package/ui/css/charts.css +327 -0
  47. package/ui/css/components.css +570 -0
  48. package/ui/css/panels.css +956 -0
  49. package/ui/css/tokens.css +227 -0
  50. package/ui/favicon.svg +5 -0
  51. package/ui/index.html +91 -351
  52. package/ui/js/api.js +220 -0
  53. package/ui/js/app.js +200 -0
  54. package/ui/js/console-logger.js +172 -0
  55. package/ui/js/i18n.js +14 -0
  56. package/ui/js/icons.js +104 -0
  57. package/ui/js/onboarding.js +439 -0
  58. package/ui/js/router.js +125 -0
  59. package/ui/js/state.js +130 -0
  60. package/ui/js/theme.js +100 -0
  61. package/ui/js/time-tracker.js +248 -0
  62. package/ui/js/utils.js +175 -0
  63. package/ui/js/views/board.js +255 -0
  64. package/ui/js/views/execution.js +256 -0
  65. package/ui/js/views/flash.js +47 -0
  66. package/ui/js/views/insights.js +340 -0
  67. package/ui/js/views/overview.js +365 -0
  68. package/ui/js/views/settings.js +381 -0
  69. package/ui/js/views/sidebar.js +131 -0
  70. package/ui/js/views/skills.js +163 -0
  71. package/ui/js/views/tasks.js +406 -0
  72. 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,3 @@
1
+ interface:
2
+ display_name: "TrackOps"
3
+ short_description: "Global TrackOps skill for local project orchestration and operational automation"
@@ -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
+ }
@@ -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}}**. Operas bajo el protocolo E.T.A.P.A. v2.0.
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 `.agent/skills/_registry.md` para ver las skills instaladas.
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
@@ -1,4 +1,4 @@
1
- # El Ciclo E.T.A.P.A. — Referencia Completa
1
+ # El Ciclo O.P.E.R.A. — Referencia Completa (alias heredado ETAPA)
2
2
 
3
3
  Este documento detalla cada fase del ciclo con sus reglas, procedimientos y Definitions of Done.
4
4
 
@@ -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 `.agent/skills/_registry.md` para ver las skills instaladas.
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
+ ```