@openlife/cli 1.7.3 → 1.7.5

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 (67) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/CODE_OF_CONDUCT.md +31 -0
  3. package/CONTRIBUTING.md +133 -0
  4. package/README.md +25 -9
  5. package/dist/index.js +10 -1
  6. package/package.json +10 -2
  7. package/docs/CHANGELOG_FEATURE_ROLLOUT_DESIGNMD.md +0 -43
  8. package/docs/EXTERNAL_SOURCES_AND_SECURITY_GUARD.md +0 -33
  9. package/docs/OPENLIFE_AUDIT_2026-05-06.md +0 -170
  10. package/docs/OPENLIFE_CONSOLIDATED_PLAN_2026-05-06.md +0 -299
  11. package/docs/OPENLIFE_DUAL_MODE_IMPLEMENTATION_PLAN.md +0 -205
  12. package/docs/OPENLIFE_EVOLUTION_SURFACE_2026-05-07.md +0 -53
  13. package/docs/OPENLIFE_SKILLS_IMPORT_2026-05-07.json +0 -223
  14. package/docs/OPENLIFE_SQUADS_IMPORT_2026-05-07.json +0 -184
  15. package/docs/PAPERCLIP_OPENLIFE_INVESTIGATION.md +0 -85
  16. package/docs/RELEASE_ORGANIZATION_PLAN.md +0 -164
  17. package/docs/audit/CLI-EXECUTION-RESULTS.md +0 -113
  18. package/docs/audit/CLI-MATRIX.md +0 -556
  19. package/docs/audit/DOC-PARITY-GAPS.md +0 -351
  20. package/docs/audit/ORCHESTRATOR-MATRIX.md +0 -136
  21. package/docs/audit/TEST-COVERAGE-GAPS.md +0 -334
  22. package/docs/audit/integrations/SKIPPED.md +0 -101
  23. package/docs/autonomous-install.md +0 -79
  24. package/docs/capability-genesis.md +0 -137
  25. package/docs/capability-pack-schema.md +0 -157
  26. package/docs/commands.md +0 -82
  27. package/docs/deep-research-capability.md +0 -114
  28. package/docs/development/typescript-conventions.md +0 -95
  29. package/docs/host-installers.md +0 -68
  30. package/docs/install/aiobuilder.md +0 -70
  31. package/docs/install/claude-code.md +0 -83
  32. package/docs/install/codex.md +0 -64
  33. package/docs/install/gemini-cli.md +0 -64
  34. package/docs/install/runtime-profiles.md +0 -83
  35. package/docs/openlife-agent-os-blueprint.md +0 -114
  36. package/docs/openlife-install-backlog.md +0 -115
  37. package/docs/openlife-install-spec.md +0 -306
  38. package/docs/operations/CLOUD_CUTOVER_AUDIT.md +0 -37
  39. package/docs/operations/PHASE_PROGRESS_CONTINUATION.md +0 -24
  40. package/docs/performance-benchmarks.md +0 -83
  41. package/docs/planning/v1.3-capability-genesis.md +0 -157
  42. package/docs/plans/2026-05-05-admin-interface-professional-dark-premium-plan.md +0 -84
  43. package/docs/plans/2026-05-05-openlife-autonomous-domain-marketplace-masterplan.md +0 -122
  44. package/docs/roadmap/OPENLIFE_MASTER_PLAN_CLOUD_V3.md +0 -97
  45. package/docs/sandboxing-research.md +0 -117
  46. package/docs/stories/epic-feature-audit/1.1.story.md +0 -84
  47. package/docs/stories/epic-feature-audit/1.2.story.md +0 -102
  48. package/docs/stories/epic-feature-audit/1.3.story.md +0 -93
  49. package/docs/stories/epic-feature-audit/1.5.story.md +0 -121
  50. package/docs/stories/epic-feature-audit/1.6.story.md +0 -80
  51. package/docs/stories/epic-feature-completeness/2.1.story.md +0 -70
  52. package/docs/stories/epic-feature-completeness/2.2.story.md +0 -49
  53. package/docs/stories/epic-feature-completeness/2.3.story.md +0 -74
  54. package/docs/stories/epic-feature-completeness/2.4.story.md +0 -71
  55. package/docs/stories/epic-feature-completeness/3.1.story.md +0 -56
  56. package/docs/stories/epic-feature-completeness/3.2.story.md +0 -80
  57. package/docs/stories/epic-feature-completeness/3.3.story.md +0 -68
  58. package/docs/stories/epic-feature-completeness/3.4.story.md +0 -71
  59. package/docs/stories/epic-feature-completeness/3.5.story.md +0 -72
  60. package/docs/stories/epic-feature-completeness/3.6.story.md +0 -69
  61. package/docs/stories/epic-feature-completeness/3.7.story.md +0 -68
  62. package/docs/stories/epic-feature-completeness/3.8.story.md +0 -57
  63. package/docs/v1.4-changelog.md +0 -159
  64. package/docs/v1.5-changelog.md +0 -106
  65. package/docs/v1.5-roadmap.md +0 -121
  66. package/docs/v1.6-changelog.md +0 -67
  67. package/docs/v1.6-roadmap.md +0 -89
@@ -1,53 +0,0 @@
1
- # OpenLife Evolution Surface — 2026-05-07
2
-
3
- ## O que foi consolidado
4
-
5
- - O runtime agora lê o catálogo canônico do repo (`.catalog`) e não depende de leitura direta do Obsidian/LARA.
6
- - Foram espelhados agentes de referência de `LARA/Agentes` para `.catalog/agents/<id>/AGENT.md`.
7
- - O catálogo passou a conter mais de 300 agentes disponíveis no runtime.
8
- - Tokens/segredos detectados no material espelhado foram redigidos antes de commit.
9
-
10
- ## Comandos adicionados/fortalecidos
11
-
12
- ```bash
13
- openlife catalog doctor
14
- openlife catalog list
15
- openlife service list
16
- openlife service create <serviceId> --objective "..."
17
- openlife task list
18
- openlife task run "objetivo" --service <serviceId>
19
- openlife swarm run "objetivo"
20
- openlife aiobuilder create-agent <id>
21
- openlife aiobuilder create-squad <id>
22
- openlife aiobuilder validate-catalog
23
- openlife smoke railway
24
- openlife smoke telegram
25
- ```
26
-
27
- ## Garantias
28
-
29
- - `openlife catalog doctor` exige pelo menos 300 agentes.
30
- - `openlife agents list` deve retornar fonte em `.catalog/agents`.
31
- - `openlife swarm run` gera `.openlife/swarm-last-run.json`.
32
- - `openlife aiobuilder validate-catalog` valida que o AIOBUILDER tem catálogo suficiente para operar.
33
- - `openlife smoke railway` valida endpoint HTTP de produção sem expor segredos.
34
- - `openlife smoke telegram` usa `getMe` e só retorna metadados seguros do bot.
35
-
36
- ## Teste de regressão
37
-
38
- ```bash
39
- npm run test:evolution-surface
40
- ```
41
-
42
- Esse teste cobre:
43
-
44
- - catálogo com 300+ agentes;
45
- - runtime agents vindo de `.catalog`;
46
- - swarm artifact;
47
- - AIOBUILDER catalog validation;
48
- - service create/list;
49
- - task run com serviço associado.
50
-
51
- ## Observação arquitetural
52
-
53
- `LARA/Agentes` e `LARA/OPEN-LIFE` permanecem referência estratégica/histórica. O runtime operacional do OpenLife deve usar `.catalog` local/cloud como fonte canônica.
@@ -1,223 +0,0 @@
1
- {
2
- "imported": [
3
- {
4
- "id": "1password",
5
- "source": "1password.md"
6
- },
7
- {
8
- "id": "apple-notes",
9
- "source": "apple-notes.md"
10
- },
11
- {
12
- "id": "apple-reminders",
13
- "source": "apple-reminders.md"
14
- },
15
- {
16
- "id": "bear-notes",
17
- "source": "bear-notes.md"
18
- },
19
- {
20
- "id": "blogwatcher",
21
- "source": "blogwatcher.md"
22
- },
23
- {
24
- "id": "blucli",
25
- "source": "blucli.md"
26
- },
27
- {
28
- "id": "bluebubbles",
29
- "source": "bluebubbles.md"
30
- },
31
- {
32
- "id": "browser-use",
33
- "source": "browser-use.md"
34
- },
35
- {
36
- "id": "camsnap",
37
- "source": "camsnap.md"
38
- },
39
- {
40
- "id": "canvas",
41
- "source": "canvas.md"
42
- },
43
- {
44
- "id": "clawhub",
45
- "source": "clawhub.md"
46
- },
47
- {
48
- "id": "coding-agent",
49
- "source": "coding-agent.md"
50
- },
51
- {
52
- "id": "discord",
53
- "source": "discord.md"
54
- },
55
- {
56
- "id": "eightctl",
57
- "source": "eightctl.md"
58
- },
59
- {
60
- "id": "gemini",
61
- "source": "gemini.md"
62
- },
63
- {
64
- "id": "gh-issues",
65
- "source": "gh-issues.md"
66
- },
67
- {
68
- "id": "gifgrep",
69
- "source": "gifgrep.md"
70
- },
71
- {
72
- "id": "github",
73
- "source": "github.md"
74
- },
75
- {
76
- "id": "gog",
77
- "source": "gog.md"
78
- },
79
- {
80
- "id": "goplaces",
81
- "source": "goplaces.md"
82
- },
83
- {
84
- "id": "healthcheck",
85
- "source": "healthcheck.md"
86
- },
87
- {
88
- "id": "himalaya",
89
- "source": "himalaya.md"
90
- },
91
- {
92
- "id": "imsg",
93
- "source": "imsg.md"
94
- },
95
- {
96
- "id": "mcporter",
97
- "source": "mcporter.md"
98
- },
99
- {
100
- "id": "model-usage",
101
- "source": "model-usage.md"
102
- },
103
- {
104
- "id": "nano-banana-pro",
105
- "source": "nano-banana-pro.md"
106
- },
107
- {
108
- "id": "nano-pdf",
109
- "source": "nano-pdf.md"
110
- },
111
- {
112
- "id": "node-connect",
113
- "source": "node-connect.md"
114
- },
115
- {
116
- "id": "notion",
117
- "source": "notion.md"
118
- },
119
- {
120
- "id": "obsidian",
121
- "source": "obsidian.md"
122
- },
123
- {
124
- "id": "openai-image-gen",
125
- "source": "openai-image-gen.md"
126
- },
127
- {
128
- "id": "openai-whisper-api",
129
- "source": "openai-whisper-api.md"
130
- },
131
- {
132
- "id": "openai-whisper",
133
- "source": "openai-whisper.md"
134
- },
135
- {
136
- "id": "openhue",
137
- "source": "openhue.md"
138
- },
139
- {
140
- "id": "oracle",
141
- "source": "oracle.md"
142
- },
143
- {
144
- "id": "ordercli",
145
- "source": "ordercli.md"
146
- },
147
- {
148
- "id": "peekaboo",
149
- "source": "peekaboo.md"
150
- },
151
- {
152
- "id": "sag",
153
- "source": "sag.md"
154
- },
155
- {
156
- "id": "session-logs",
157
- "source": "session-logs.md"
158
- },
159
- {
160
- "id": "sherpa-onnx-tts",
161
- "source": "sherpa-onnx-tts.md"
162
- },
163
- {
164
- "id": "skill-creator",
165
- "source": "skill-creator.md"
166
- },
167
- {
168
- "id": "slack",
169
- "source": "slack.md"
170
- },
171
- {
172
- "id": "songsee",
173
- "source": "songsee.md"
174
- },
175
- {
176
- "id": "sonoscli",
177
- "source": "sonoscli.md"
178
- },
179
- {
180
- "id": "spotify-player",
181
- "source": "spotify-player.md"
182
- },
183
- {
184
- "id": "summarize",
185
- "source": "summarize.md"
186
- },
187
- {
188
- "id": "things-mac",
189
- "source": "things-mac.md"
190
- },
191
- {
192
- "id": "tmux",
193
- "source": "tmux.md"
194
- },
195
- {
196
- "id": "trello",
197
- "source": "trello.md"
198
- },
199
- {
200
- "id": "video-frames",
201
- "source": "video-frames.md"
202
- },
203
- {
204
- "id": "voice-call",
205
- "source": "voice-call.md"
206
- },
207
- {
208
- "id": "wacli",
209
- "source": "wacli.md"
210
- },
211
- {
212
- "id": "weather",
213
- "source": "weather.md"
214
- },
215
- {
216
- "id": "xurl",
217
- "source": "xurl.md"
218
- }
219
- ],
220
- "skipped": [
221
- "_Índice de Skills.md"
222
- ]
223
- }
@@ -1,184 +0,0 @@
1
- {
2
- "imported": [
3
- {
4
- "id": "00-governance-advisory-board",
5
- "source": "00-governance/advisory-board.md"
6
- },
7
- {
8
- "id": "00-governance-c-level-squad",
9
- "source": "00-governance/c-level-squad.md"
10
- },
11
- {
12
- "id": "00-governance-capital-ai-canon-v1-livros-e-grandes-mentes",
13
- "source": "00-governance/capital-ai/Capital AI - Canon V1 — Livros e Grandes Mentes.md"
14
- },
15
- {
16
- "id": "00-governance-capital-ai-definicao-canonica",
17
- "source": "00-governance/capital-ai/Capital AI - Definição Canônica.md"
18
- },
19
- {
20
- "id": "00-governance-capital-ai",
21
- "source": "00-governance/capital-ai/capital-ai.md"
22
- },
23
- {
24
- "id": "00-governance-conselho",
25
- "source": "00-governance/conselho.md"
26
- },
27
- {
28
- "id": "00-governance-host-quest",
29
- "source": "00-governance/host-quest.md"
30
- },
31
- {
32
- "id": "00-governance-project-ops-squad",
33
- "source": "00-governance/project-ops-squad.md"
34
- },
35
- {
36
- "id": "00-governance-scrap-master",
37
- "source": "00-governance/scrap-master.md"
38
- },
39
- {
40
- "id": "01-meta-framework-aiobuilder-funcionalidades-inspiradas-em-claude-code",
41
- "source": "01-meta-framework/AIOBUILDER - Funcionalidades inspiradas em Claude Code.md"
42
- },
43
- {
44
- "id": "01-meta-framework-ai-builder",
45
- "source": "01-meta-framework/ai-builder.md"
46
- },
47
- {
48
- "id": "01-meta-framework-swarm-tree-orchestration",
49
- "source": "01-meta-framework/swarm-tree-orchestration.md"
50
- },
51
- {
52
- "id": "02-product-growth-ads-xpower",
53
- "source": "02-product-growth/ads-xpower.md"
54
- },
55
- {
56
- "id": "02-product-growth-awards",
57
- "source": "02-product-growth/awards.md"
58
- },
59
- {
60
- "id": "02-product-growth-brand-squad",
61
- "source": "02-product-growth/brand-squad.md"
62
- },
63
- {
64
- "id": "02-product-growth-copy-squad",
65
- "source": "02-product-growth/copy-squad.md"
66
- },
67
- {
68
- "id": "02-product-growth-design-squad",
69
- "source": "02-product-growth/design-squad.md"
70
- },
71
- {
72
- "id": "02-product-growth-fabrica-ads",
73
- "source": "02-product-growth/fabrica-ads.md"
74
- },
75
- {
76
- "id": "02-product-growth-fabrica-imortais-backup",
77
- "source": "02-product-growth/fabrica-imortais-backup.md"
78
- },
79
- {
80
- "id": "02-product-growth-hormozi-squad",
81
- "source": "02-product-growth/hormozi-squad.md"
82
- },
83
- {
84
- "id": "02-product-growth-movement",
85
- "source": "02-product-growth/movement.md"
86
- },
87
- {
88
- "id": "02-product-growth-saas-onboarding-activator",
89
- "source": "02-product-growth/saas-onboarding-activator.md"
90
- },
91
- {
92
- "id": "02-product-growth-sales-squad",
93
- "source": "02-product-growth/sales-squad.md"
94
- },
95
- {
96
- "id": "02-product-growth-storytelling",
97
- "source": "02-product-growth/storytelling.md"
98
- },
99
- {
100
- "id": "02-product-growth-traffic-masters",
101
- "source": "02-product-growth/traffic-masters.md"
102
- },
103
- {
104
- "id": "02-product-growth-ultimate-landingpage",
105
- "source": "02-product-growth/ultimate-landingpage.md"
106
- },
107
- {
108
- "id": "03-engineering-quality-automated-code-review-squad",
109
- "source": "03-engineering-quality/automated-code-review-squad.md"
110
- },
111
- {
112
- "id": "03-engineering-quality-cloudflare-mini",
113
- "source": "03-engineering-quality/cloudflare-mini.md"
114
- },
115
- {
116
- "id": "03-engineering-quality-seguranca",
117
- "source": "03-engineering-quality/seguranca.md"
118
- },
119
- {
120
- "id": "04-data-security-cybersecurity",
121
- "source": "04-data-security/cybersecurity.md"
122
- },
123
- {
124
- "id": "04-data-security-data-quality-guardian",
125
- "source": "04-data-security/data-quality-guardian.md"
126
- },
127
- {
128
- "id": "04-data-security-data-squad",
129
- "source": "04-data-security/data-squad.md"
130
- },
131
- {
132
- "id": "04-data-security-incident-response-squad",
133
- "source": "04-data-security/incident-response-squad.md"
134
- },
135
- {
136
- "id": "04-data-security-soc-alert-triage",
137
- "source": "04-data-security/soc-alert-triage.md"
138
- },
139
- {
140
- "id": "05-domain-specialists-adaptive-tutor-k12",
141
- "source": "05-domain-specialists/adaptive-tutor-k12.md"
142
- },
143
- {
144
- "id": "05-domain-specialists-ambient-clinical-scribe",
145
- "source": "05-domain-specialists/ambient-clinical-scribe.md"
146
- },
147
- {
148
- "id": "05-domain-specialists-bibliotecaria",
149
- "source": "05-domain-specialists/bibliotecaria.md"
150
- },
151
- {
152
- "id": "05-domain-specialists-contract-review-squad",
153
- "source": "05-domain-specialists/contract-review-squad.md"
154
- },
155
- {
156
- "id": "05-domain-specialists-crypto-token-forge",
157
- "source": "05-domain-specialists/crypto-token-forge.md"
158
- },
159
- {
160
- "id": "05-domain-specialists-legaltech",
161
- "source": "05-domain-specialists/legaltech.md"
162
- },
163
- {
164
- "id": "05-domain-specialists-resume-screener-squad",
165
- "source": "05-domain-specialists/resume-screener-squad.md"
166
- },
167
- {
168
- "id": "mirofish-mirofish-squad",
169
- "source": "mirofish/MiroFish Squad.md"
170
- },
171
- {
172
- "id": "mirofish-intel-mirofish-intel",
173
- "source": "mirofish-intel/MiroFish Intel.md"
174
- },
175
- {
176
- "id": "openlife-auto-criar-pipeline-de-revis-o-jur-dica-para-contratos-1777092830690",
177
- "source": "openlife-auto/criar-pipeline-de-revis-o-jur-dica-para-contratos-1777092830690.md"
178
- }
179
- ],
180
- "skipped": [
181
- "_standards.md",
182
- "_Índice de Squads.md"
183
- ]
184
- }
@@ -1,85 +0,0 @@
1
- # Paperclip → OpenLife Investigation (v0)
2
-
3
- ## Source analyzed
4
- - Repo: https://github.com/paperclipai/paperclip
5
- - Local clone: `/mnt/d/VSCODDE-DEV/openlife-core-main/research/paperclip`
6
- - HEAD: `edbb670c`
7
-
8
- ## Core concept (important for OpenLife)
9
- Paperclip treats **tasks/issues as execution units**, but the platform itself is a **company/service control plane** with:
10
- - goal ancestry
11
- n- governance + approvals
12
- - budget hard-stops
13
- - heartbeat scheduling
14
- - org chart and roles
15
- - immutable activity/audit trail
16
-
17
- This matches your direction: OpenLife should not stop at mission/task; it should run **service-level operations** continuously.
18
-
19
- ## What to borrow directly
20
- 1. **Service-level objective lineage**
21
- - Every mission/task must attach to a persistent service objective.
22
- 2. **Control-plane semantics**
23
- - Atomic checkout, explicit owner, lifecycle locks, recoverable runs.
24
- 3. **Governance as first-class**
25
- - Approval gates and policy outcomes as durable records.
26
- 4. **Cost/budget guardrails**
27
- - Per-service budget + hard stop + escalation.
28
- 5. **Heartbeat execution model**
29
- - Continuous operation by scheduled wakeups and event triggers.
30
- 6. **Activity/event ledger**
31
- - Every mutation becomes an auditable event.
32
-
33
- ## OpenLife gap today (observed)
34
- - Mission-centric persistence exists.
35
- - New consequence thought trace exists.
36
- - Missing: a persistent **ServiceState aggregate** across many missions.
37
-
38
- ## Proposed OpenLife vNext data model (minimal)
39
-
40
- ```ts
41
- ServiceState {
42
- serviceId: string;
43
- objective: string;
44
- status: 'active'|'paused'|'degraded'|'archived';
45
- riskProfile: 'low'|'medium'|'high';
46
-
47
- slo: {
48
- latencyP95Ms?: number;
49
- successRateMin?: number;
50
- safetyIncidentMax?: number;
51
- };
52
-
53
- kpis: {
54
- completionRate?: number;
55
- avgCycleTimeMs?: number;
56
- governanceBlockRate?: number;
57
- fallbackRate?: number;
58
- };
59
-
60
- budget: {
61
- monthlyLimitCents?: number;
62
- spentCents?: number;
63
- hardStop: boolean;
64
- };
65
-
66
- missionIds: string[];
67
- latestThoughtTracePath?: string;
68
- createdAt: string;
69
- updatedAt: string;
70
- }
71
- ```
72
-
73
- ## Implementation phases
74
- 1. Introduce `ServiceState` + `ServiceStateStore` (JSON first, DB later).
75
- 2. Bind each mission to a `serviceId` and append missionId to service aggregate.
76
- 3. Add service event log (`service-events/<serviceId>.jsonl`).
77
- 4. Add runtime gate: mission execution checks `service.status` + budget + governance.
78
- 5. Add `openlife service status <serviceId>` CLI/Telegram command.
79
-
80
- ## Success criterion
81
- OpenLife can answer at any time:
82
- - Which services are healthy/degraded?
83
- - Which missions are currently executing per service?
84
- - Which governance/cost gates blocked progress?
85
- - What is the current service-level risk and SLO posture?
@@ -1,164 +0,0 @@
1
- # OpenLife — Plano de Organização, Commits Atômicos e Release
2
-
3
- ## Objetivo
4
- Organizar as mudanças atuais em lotes atômicos, com validação incremental e smoke test final.
5
-
6
- ## Estratégia de Branch
7
- - Branch recomendada: `feat/reversa-designmd-full-openlife`
8
- - Regra: 1 commit por bloco funcional coeso.
9
-
10
- ## Lote 1 — Core dual-mode + governança
11
- **Escopo**
12
- - `src/orchestrator/ExecutionIntent.ts`
13
- - `src/orchestrator/ExecutionRouter.ts`
14
- - `src/orchestrator/MissionState.ts`
15
- - `src/orchestrator/OrchestrationLoop.ts`
16
- - `src/orchestrator/Gatekeeper.ts`
17
- - `src/orchestrator/GovernanceLayer.ts`
18
- - `src/test_dual_mode.ts`
19
- - `src/test_service_guardrails_delete.ts`
20
- - `src/test_telegram_delete_guardrail.ts`
21
-
22
- **Commit**
23
- - `feat(core): dual-mode task/service + destructive guardrails`
24
-
25
- **Validação**
26
- - `npm run build`
27
- - `node dist/test_dual_mode.js`
28
- - `node dist/test_service_guardrails_delete.js`
29
- - `node dist/test_telegram_delete_guardrail.js`
30
-
31
- ---
32
-
33
- ## Lote 2 — Lifecycle de jobs + runtime registry
34
- **Escopo**
35
- - `src/orchestrator/JobLifecycle.ts`
36
- - `src/orchestrator/RuntimeRegistry.ts`
37
- - `src/test_job_lifecycle.ts`
38
- - `src/test_runtime_registry.ts`
39
-
40
- **Commit**
41
- - `feat(runtime): job lifecycle + runtime registry baseline`
42
-
43
- **Validação**
44
- - `npm run build`
45
- - `node dist/test_job_lifecycle.js`
46
- - `node dist/test_runtime_registry.js`
47
-
48
- ---
49
-
50
- ## Lote 3 — Service state, CLI surface e operações
51
- **Escopo**
52
- - `src/orchestrator/ServiceState.ts`
53
- - `src/index.ts` (comandos service/task/job/runtime)
54
- - `src/test_service_command_surface.ts`
55
- - `src/test_cli_service_commands.ts`
56
-
57
- **Commit**
58
- - `feat(cli): service/task/job/runtime command surface`
59
-
60
- **Validação**
61
- - `npm run build`
62
- - `node dist/test_service_command_surface.js`
63
- - `node dist/test_cli_service_commands.js`
64
-
65
- ---
66
-
67
- ## Lote 4 — Teammates + learning loop
68
- **Escopo**
69
- - `src/orchestrator/TeammateBoard.ts`
70
- - `src/orchestrator/SkillLearningLoop.ts`
71
- - `src/test_teammate_learning.ts`
72
-
73
- **Commit**
74
- - `feat(ops): teammate board + governed learning loop baseline`
75
-
76
- **Validação**
77
- - `npm run build`
78
- - `node dist/test_teammate_learning.js`
79
-
80
- ---
81
-
82
- ## Lote 5 — Reversa full + contracts
83
- **Escopo**
84
- - `src/reversa/ReversaExecutors.ts`
85
- - `src/reversa/ReversaContracts.ts`
86
- - `src/reversa/ReversaAgent.ts`
87
- - `src/test_reversa_lite.ts`
88
- - `src/test_reversa_full_execution.ts`
89
- - `src/test_reversa_contracts_e2e.ts`
90
-
91
- **Commit**
92
- - `feat(reversa): full phase executors + contract validation + final contracts`
93
-
94
- **Validação**
95
- - `npm run build`
96
- - `node dist/test_reversa_lite.js`
97
- - `node dist/test_reversa_full_execution.js`
98
- - `node dist/test_reversa_contracts_e2e.js`
99
-
100
- ---
101
-
102
- ## Lote 6 — DesignMD import/registry/mode + AIOBUILDER strict
103
- **Escopo**
104
- - `vendor/awesome-design-md/**`
105
- - `src/design/DesignMdImporter.ts`
106
- - `src/design/DesignMdRegistry.ts`
107
- - `src/design/DesignMdMode.ts`
108
- - `src/index.ts` (comandos designmd/reversa export-json/aiobuilder strict)
109
- - `src/test_designmd_import_registry.ts`
110
- - `src/test_designmd_mode.ts`
111
- - `src/test_designmd_mode_workspace.ts`
112
- - `src/test_reversa_export_and_strict.ts`
113
-
114
- **Commit**
115
- - `feat(designmd): vendor import + registry/mode + aiobuilder strict contracts`
116
-
117
- **Validação**
118
- - `npm run build`
119
- - `node dist/test_designmd_import_registry.js`
120
- - `node dist/test_designmd_mode.js`
121
- - `node dist/test_designmd_mode_workspace.js`
122
- - `node dist/test_reversa_export_and_strict.js`
123
-
124
- ---
125
-
126
- ## Lote 7 — Documentação
127
- **Escopo**
128
- - `docs/CHANGELOG_FEATURE_ROLLOUT_DESIGNMD.md`
129
- - `docs/OPENLIFE_DUAL_MODE_IMPLEMENTATION_PLAN.md`
130
- - `docs/PAPERCLIP_OPENLIFE_INVESTIGATION.md`
131
- - `docs/RELEASE_ORGANIZATION_PLAN.md`
132
-
133
- **Commit**
134
- - `docs: rollout changelog + dual-mode/reversa/designmd plans`
135
-
136
- ---
137
-
138
- ## Smoke test final (único comando)
139
- ```bash
140
- npm run build && \
141
- node dist/test_dual_mode.js && \
142
- node dist/test_service_guardrails_delete.js && \
143
- node dist/test_telegram_delete_guardrail.js && \
144
- node dist/test_job_lifecycle.js && \
145
- node dist/test_runtime_registry.js && \
146
- node dist/test_service_command_surface.js && \
147
- node dist/test_cli_service_commands.js && \
148
- node dist/test_teammate_learning.js && \
149
- node dist/test_reversa_lite.js && \
150
- node dist/test_reversa_full_execution.js && \
151
- node dist/test_reversa_contracts_e2e.js && \
152
- node dist/test_designmd_import_registry.js && \
153
- node dist/test_designmd_mode.js && \
154
- node dist/test_designmd_mode_workspace.js && \
155
- node dist/test_reversa_export_and_strict.js
156
- ```
157
-
158
- ## Checklist de release interno
159
- - [ ] Todos os lotes com build/testes verdes
160
- - [ ] `openlife reversa run-all --note "pre-release"` executado
161
- - [ ] `openlife reversa export-json` gerado
162
- - [ ] `openlife aiobuilder generate-ui dashboard --strict-contracts` OK
163
- - [ ] Revisão de artefatos em `.reversa/` e `.artifacts/workspaces/default/`
164
- - [ ] Aprovação final do Rafa antes de push/deploy