oxe-cc 1.0.0 → 1.3.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/.cursor/commands/oxe-ask.md +3 -3
- package/.cursor/commands/oxe-capabilities.md +3 -3
- package/.cursor/commands/oxe-checkpoint.md +3 -3
- package/.cursor/commands/oxe-compact.md +3 -3
- package/.cursor/commands/oxe-dashboard.md +3 -3
- package/.cursor/commands/oxe-debug.md +3 -3
- package/.cursor/commands/oxe-discuss.md +3 -3
- package/.cursor/commands/oxe-execute.md +7 -4
- package/.cursor/commands/oxe-forensics.md +3 -3
- package/.cursor/commands/oxe-help.md +3 -3
- package/.cursor/commands/oxe-loop.md +3 -3
- package/.cursor/commands/oxe-milestone.md +3 -3
- package/.cursor/commands/oxe-next.md +3 -3
- package/.cursor/commands/oxe-obs.md +3 -3
- package/.cursor/commands/oxe-plan-agent.md +3 -3
- package/.cursor/commands/oxe-plan.md +3 -3
- package/.cursor/commands/oxe-project.md +3 -3
- package/.cursor/commands/oxe-quick.md +3 -3
- package/.cursor/commands/oxe-research.md +3 -3
- package/.cursor/commands/oxe-retro.md +3 -3
- package/.cursor/commands/oxe-review-pr.md +3 -3
- package/.cursor/commands/oxe-route.md +3 -3
- package/.cursor/commands/oxe-scan.md +3 -3
- package/.cursor/commands/oxe-security.md +3 -3
- package/.cursor/commands/oxe-session.md +4 -4
- package/.cursor/commands/oxe-ship.md +45 -0
- package/.cursor/commands/oxe-skill.md +3 -3
- package/.cursor/commands/oxe-spec.md +3 -3
- package/.cursor/commands/oxe-ui-review.md +3 -3
- package/.cursor/commands/oxe-ui-spec.md +3 -3
- package/.cursor/commands/oxe-update.md +3 -3
- package/.cursor/commands/oxe-validate-gaps.md +3 -3
- package/.cursor/commands/oxe-verify.md +6 -3
- package/.cursor/commands/oxe-workstream.md +3 -3
- package/.cursor/commands/oxe.md +6 -6
- package/.github/copilot-instructions.md +94 -4
- package/.github/prompts/oxe-ask.prompt.md +3 -3
- package/.github/prompts/oxe-capabilities.prompt.md +3 -3
- package/.github/prompts/oxe-checkpoint.prompt.md +3 -3
- package/.github/prompts/oxe-compact.prompt.md +3 -3
- package/.github/prompts/oxe-dashboard.prompt.md +3 -3
- package/.github/prompts/oxe-debug.prompt.md +3 -3
- package/.github/prompts/oxe-discuss.prompt.md +3 -3
- package/.github/prompts/oxe-execute.prompt.md +7 -4
- package/.github/prompts/oxe-forensics.prompt.md +3 -3
- package/.github/prompts/oxe-help.prompt.md +3 -3
- package/.github/prompts/oxe-loop.prompt.md +3 -3
- package/.github/prompts/oxe-milestone.prompt.md +3 -3
- package/.github/prompts/oxe-next.prompt.md +3 -3
- package/.github/prompts/oxe-obs.prompt.md +3 -3
- package/.github/prompts/oxe-plan-agent.prompt.md +3 -3
- package/.github/prompts/oxe-plan.prompt.md +3 -3
- package/.github/prompts/oxe-project.prompt.md +3 -3
- package/.github/prompts/oxe-quick.prompt.md +3 -3
- package/.github/prompts/oxe-research.prompt.md +3 -3
- package/.github/prompts/oxe-retro.prompt.md +3 -3
- package/.github/prompts/oxe-review-pr.prompt.md +3 -3
- package/.github/prompts/oxe-route.prompt.md +3 -3
- package/.github/prompts/oxe-scan.prompt.md +3 -3
- package/.github/prompts/oxe-security.prompt.md +3 -3
- package/.github/prompts/oxe-session.prompt.md +4 -4
- package/.github/prompts/oxe-ship.prompt.md +45 -0
- package/.github/prompts/oxe-skill.prompt.md +3 -3
- package/.github/prompts/oxe-spec.prompt.md +3 -3
- package/.github/prompts/oxe-ui-review.prompt.md +3 -3
- package/.github/prompts/oxe-ui-spec.prompt.md +3 -3
- package/.github/prompts/oxe-update.prompt.md +3 -3
- package/.github/prompts/oxe-validate-gaps.prompt.md +3 -3
- package/.github/prompts/oxe-verify.prompt.md +6 -3
- package/.github/prompts/oxe-workstream.prompt.md +3 -3
- package/.github/prompts/oxe.prompt.md +5 -5
- package/AGENTS.md +43 -28
- package/CHANGELOG.md +193 -0
- package/README.md +610 -529
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-agent-install.cjs +69 -69
- package/bin/lib/oxe-azure.cjs +1445 -1445
- package/bin/lib/oxe-context-engine.cjs +867 -867
- package/bin/lib/oxe-dashboard.cjs +76 -28
- package/bin/lib/oxe-operational.cjs +2144 -1340
- package/bin/lib/oxe-project-health.cjs +483 -1
- package/bin/lib/oxe-runtime-semantics.cjs +12 -0
- package/bin/oxe-cc.js +554 -152
- package/commands/oxe/ask.md +7 -3
- package/commands/oxe/capabilities.md +2 -2
- package/commands/oxe/checkpoint.md +3 -3
- package/commands/oxe/compact.md +3 -3
- package/commands/oxe/dashboard.md +2 -2
- package/commands/oxe/debug.md +3 -3
- package/commands/oxe/discuss.md +2 -2
- package/commands/oxe/execute.md +7 -4
- package/commands/oxe/forensics.md +3 -3
- package/commands/oxe/help.md +2 -2
- package/commands/oxe/loop.md +3 -3
- package/commands/oxe/milestone.md +3 -3
- package/commands/oxe/next.md +3 -3
- package/commands/oxe/obs.md +3 -3
- package/commands/oxe/oxe.md +5 -5
- package/commands/oxe/plan-agent.md +2 -2
- package/commands/oxe/plan.md +2 -2
- package/commands/oxe/project.md +3 -3
- package/commands/oxe/quick.md +2 -2
- package/commands/oxe/research.md +3 -3
- package/commands/oxe/retro.md +3 -3
- package/commands/oxe/review-pr.md +3 -3
- package/commands/oxe/route.md +3 -3
- package/commands/oxe/scan.md +3 -3
- package/commands/oxe/security.md +3 -3
- package/commands/oxe/session.md +4 -4
- package/commands/oxe/ship.md +49 -0
- package/commands/oxe/skill.md +2 -2
- package/commands/oxe/spec.md +4 -4
- package/commands/oxe/ui-review.md +3 -3
- package/commands/oxe/ui-spec.md +3 -3
- package/commands/oxe/update.md +2 -2
- package/commands/oxe/validate-gaps.md +3 -3
- package/commands/oxe/verify.md +7 -4
- package/commands/oxe/workstream.md +3 -3
- package/lib/runtime/audit/audit-trail.d.ts +71 -0
- package/lib/runtime/audit/audit-trail.js +154 -0
- package/lib/runtime/audit/index.d.ts +2 -0
- package/lib/runtime/audit/index.js +18 -0
- package/lib/runtime/audit/policy-pack.d.ts +15 -0
- package/lib/runtime/audit/policy-pack.js +57 -0
- package/lib/runtime/context/context-pack-builder.d.ts +15 -0
- package/lib/runtime/context/context-pack-builder.js +42 -0
- package/lib/runtime/context/context-pack-store.d.ts +38 -0
- package/lib/runtime/context/context-pack-store.js +142 -0
- package/lib/runtime/context/context-profiles.d.ts +11 -0
- package/lib/runtime/context/context-profiles.js +51 -0
- package/lib/runtime/context/index.d.ts +2 -0
- package/lib/runtime/context/index.js +2 -0
- package/lib/runtime/decision/decision-engine.d.ts +43 -0
- package/lib/runtime/decision/decision-engine.js +127 -0
- package/lib/runtime/decision/decision-memo.d.ts +53 -0
- package/lib/runtime/decision/decision-memo.js +173 -0
- package/lib/runtime/decision/index.d.ts +2 -0
- package/lib/runtime/decision/index.js +18 -0
- package/lib/runtime/delivery/branch-manager.d.ts +1 -0
- package/lib/runtime/delivery/branch-manager.js +7 -0
- package/lib/runtime/delivery/ci-checks.js +34 -1
- package/lib/runtime/delivery/delivery-records.d.ts +34 -0
- package/lib/runtime/delivery/delivery-records.js +48 -0
- package/lib/runtime/delivery/index.d.ts +2 -0
- package/lib/runtime/delivery/index.js +2 -0
- package/lib/runtime/delivery/promotion-pipeline.d.ts +63 -0
- package/lib/runtime/delivery/promotion-pipeline.js +224 -0
- package/lib/runtime/gate/gate-manager.d.ts +41 -0
- package/lib/runtime/gate/gate-manager.js +108 -1
- package/lib/runtime/index.d.ts +5 -2
- package/lib/runtime/index.js +7 -1
- package/lib/runtime/models/gate-decision.d.ts +4 -1
- package/lib/runtime/models/workspace.d.ts +3 -0
- package/lib/runtime/plugins/capability-adapter.d.ts +12 -0
- package/lib/runtime/plugins/capability-adapter.js +204 -0
- package/lib/runtime/plugins/capability-matrix.d.ts +25 -0
- package/lib/runtime/plugins/capability-matrix.js +90 -0
- package/lib/runtime/plugins/index.d.ts +3 -0
- package/lib/runtime/plugins/index.js +3 -0
- package/lib/runtime/plugins/plugin-abi.d.ts +2 -0
- package/lib/runtime/plugins/plugin-manifest.d.ts +22 -0
- package/lib/runtime/plugins/plugin-manifest.js +95 -0
- package/lib/runtime/plugins/plugin-registry.d.ts +46 -0
- package/lib/runtime/plugins/plugin-registry.js +84 -2
- package/lib/runtime/policy/policy-engine.d.ts +47 -1
- package/lib/runtime/policy/policy-engine.js +172 -9
- package/lib/runtime/projection/projection-engine.d.ts +9 -1
- package/lib/runtime/projection/projection-engine.js +73 -3
- package/lib/runtime/reducers/run-state-reducer.d.ts +26 -0
- package/lib/runtime/reducers/run-state-reducer.js +117 -1
- package/lib/runtime/scheduler/agent-registry.d.ts +44 -0
- package/lib/runtime/scheduler/agent-registry.js +96 -0
- package/lib/runtime/scheduler/agent-roles.d.ts +54 -0
- package/lib/runtime/scheduler/agent-roles.js +62 -0
- package/lib/runtime/scheduler/index.d.ts +3 -0
- package/lib/runtime/scheduler/index.js +3 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +45 -1
- package/lib/runtime/scheduler/multi-agent-coordinator.js +234 -35
- package/lib/runtime/scheduler/run-journal.d.ts +18 -0
- package/lib/runtime/scheduler/run-journal.js +54 -0
- package/lib/runtime/scheduler/scheduler.d.ts +29 -1
- package/lib/runtime/scheduler/scheduler.js +387 -14
- package/lib/runtime/verification/index.d.ts +1 -0
- package/lib/runtime/verification/index.js +1 -0
- package/lib/runtime/verification/verification-compiler.d.ts +43 -0
- package/lib/runtime/verification/verification-compiler.js +137 -0
- package/lib/runtime/verification/verification-manifest.d.ts +67 -0
- package/lib/runtime/verification/verification-manifest.js +179 -0
- package/lib/runtime/workspace/strategies/ephemeral-container.d.ts +1 -0
- package/lib/runtime/workspace/strategies/ephemeral-container.js +4 -0
- package/lib/runtime/workspace/strategies/git-worktree.d.ts +1 -0
- package/lib/runtime/workspace/strategies/git-worktree.js +2 -0
- package/lib/runtime/workspace/strategies/inplace.d.ts +1 -0
- package/lib/runtime/workspace/strategies/inplace.js +2 -0
- package/lib/runtime/workspace/workspace-manager.d.ts +2 -1
- package/lib/sdk/README.md +9 -9
- package/lib/sdk/index.cjs +33 -24
- package/lib/sdk/index.d.ts +149 -14
- package/oxe/templates/ACTIVE-RUN.template.json +32 -32
- package/oxe/templates/CAPABILITIES.template.md +7 -7
- package/oxe/templates/CAPABILITY.template.md +45 -45
- package/oxe/templates/CHECKPOINTS.template.md +7 -7
- package/oxe/templates/EXECUTION-RUNTIME.template.md +68 -68
- package/oxe/templates/HYPOTHESES.template.md +33 -33
- package/oxe/templates/LESSONS-METRICS.template.json +13 -13
- package/oxe/templates/NOTES.template.md +16 -16
- package/oxe/templates/PLAN-REVIEW.template.md +31 -31
- package/oxe/templates/SESSION.template.md +34 -34
- package/oxe/templates/SKILL.template.md +26 -26
- package/oxe/templates/STATE.md +55 -55
- package/oxe/templates/WORKFLOW_AUTHORING.md +18 -18
- package/oxe/workflows/ask.md +96 -92
- package/oxe/workflows/capabilities.md +25 -25
- package/oxe/workflows/checkpoint.md +14 -10
- package/oxe/workflows/dashboard.md +33 -33
- package/oxe/workflows/debug.md +19 -15
- package/oxe/workflows/discuss.md +12 -12
- package/oxe/workflows/execute.md +44 -2
- package/oxe/workflows/forensics.md +13 -9
- package/oxe/workflows/help.md +352 -304
- package/oxe/workflows/loop.md +17 -13
- package/oxe/workflows/next.md +22 -22
- package/oxe/workflows/obs.md +4 -0
- package/oxe/workflows/oxe.md +64 -31
- package/oxe/workflows/plan-agent.md +9 -9
- package/oxe/workflows/project.md +6 -1
- package/oxe/workflows/quick.md +10 -10
- package/oxe/workflows/references/reasoning-discovery.md +28 -28
- package/oxe/workflows/references/reasoning-execution.md +29 -29
- package/oxe/workflows/references/reasoning-planning.md +32 -32
- package/oxe/workflows/references/reasoning-review.md +29 -29
- package/oxe/workflows/references/reasoning-status.md +24 -24
- package/oxe/workflows/references/robustness-elevation.md +295 -295
- package/oxe/workflows/references/workflow-runtime-contracts.json +952 -907
- package/oxe/workflows/research.md +32 -28
- package/oxe/workflows/retro.md +4 -0
- package/oxe/workflows/review-pr.md +15 -11
- package/oxe/workflows/route.md +16 -16
- package/oxe/workflows/scan.md +4 -0
- package/oxe/workflows/security.md +14 -10
- package/oxe/workflows/session.md +213 -197
- package/oxe/workflows/ship.md +142 -0
- package/oxe/workflows/skill.md +44 -44
- package/oxe/workflows/spec.md +15 -0
- package/oxe/workflows/ui-review.md +20 -16
- package/oxe/workflows/ui-spec.md +7 -3
- package/oxe/workflows/validate-gaps.md +13 -9
- package/oxe/workflows/verify-audit.md +73 -73
- package/oxe/workflows/verify.md +52 -3
- package/package.json +92 -92
- package/packages/runtime/package.json +17 -17
- package/packages/runtime/src/audit/audit-trail.ts +243 -0
- package/packages/runtime/src/audit/index.ts +2 -0
- package/packages/runtime/src/audit/policy-pack.ts +62 -0
- package/packages/runtime/src/compiler/graph-compiler.ts +245 -245
- package/packages/runtime/src/compiler/index.ts +1 -1
- package/packages/runtime/src/context/context-pack-builder.ts +259 -193
- package/packages/runtime/src/context/context-pack-store.ts +197 -0
- package/packages/runtime/src/context/context-profiles.ts +60 -0
- package/packages/runtime/src/context/index.ts +3 -1
- package/packages/runtime/src/decision/decision-engine.ts +174 -0
- package/packages/runtime/src/decision/decision-memo.ts +211 -0
- package/packages/runtime/src/decision/index.ts +2 -0
- package/packages/runtime/src/delivery/branch-manager.ts +91 -84
- package/packages/runtime/src/delivery/ci-checks.ts +285 -252
- package/packages/runtime/src/delivery/delivery-records.ts +75 -0
- package/packages/runtime/src/delivery/index.ts +5 -3
- package/packages/runtime/src/delivery/pr-manager.ts +112 -112
- package/packages/runtime/src/delivery/promotion-pipeline.ts +334 -0
- package/packages/runtime/src/events/bus.ts +92 -92
- package/packages/runtime/src/events/catalog.ts +29 -29
- package/packages/runtime/src/events/envelope.ts +14 -14
- package/packages/runtime/src/events/index.ts +3 -3
- package/packages/runtime/src/evidence/evidence-store.ts +130 -130
- package/packages/runtime/src/evidence/index.ts +1 -1
- package/packages/runtime/src/gate/gate-manager.ts +289 -137
- package/packages/runtime/src/gate/index.ts +1 -1
- package/packages/runtime/src/index.ts +41 -32
- package/packages/runtime/src/models/attempt.ts +19 -19
- package/packages/runtime/src/models/evidence.ts +21 -21
- package/packages/runtime/src/models/gate-decision.ts +25 -21
- package/packages/runtime/src/models/index.ts +8 -8
- package/packages/runtime/src/models/run.ts +24 -24
- package/packages/runtime/src/models/session.ts +11 -11
- package/packages/runtime/src/models/verification-result.ts +10 -10
- package/packages/runtime/src/models/work-item.ts +25 -25
- package/packages/runtime/src/models/workspace.ts +31 -28
- package/packages/runtime/src/plugins/capability-adapter.ts +206 -0
- package/packages/runtime/src/plugins/capability-matrix.ts +126 -0
- package/packages/runtime/src/plugins/index.ts +5 -2
- package/packages/runtime/src/plugins/plugin-abi.ts +97 -95
- package/packages/runtime/src/plugins/plugin-manifest.ts +118 -0
- package/packages/runtime/src/plugins/plugin-registry.ts +232 -119
- package/packages/runtime/src/policy/index.ts +1 -1
- package/packages/runtime/src/policy/policy-engine.ts +330 -113
- package/packages/runtime/src/projection/index.ts +1 -1
- package/packages/runtime/src/projection/projection-engine.ts +328 -249
- package/packages/runtime/src/reducers/debug-reducer.ts +36 -36
- package/packages/runtime/src/reducers/index.ts +2 -2
- package/packages/runtime/src/reducers/run-state-reducer.ts +269 -127
- package/packages/runtime/src/scheduler/agent-registry.ts +132 -0
- package/packages/runtime/src/scheduler/agent-roles.ts +109 -0
- package/packages/runtime/src/scheduler/index.ts +4 -1
- package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +521 -231
- package/packages/runtime/src/scheduler/run-journal.ts +62 -0
- package/packages/runtime/src/scheduler/scheduler.ts +722 -281
- package/packages/runtime/src/verification/index.ts +2 -1
- package/packages/runtime/src/verification/verification-compiler.ts +436 -225
- package/packages/runtime/src/verification/verification-manifest.ts +252 -0
- package/packages/runtime/src/workspace/index.ts +5 -5
- package/packages/runtime/src/workspace/strategies/ephemeral-container.ts +126 -121
- package/packages/runtime/src/workspace/strategies/git-worktree.ts +79 -77
- package/packages/runtime/src/workspace/strategies/inplace.ts +38 -35
- package/packages/runtime/src/workspace/workspace-manager.ts +16 -15
- package/packages/runtime/tsconfig.json +17 -17
- package/vscode-extension/.vscodeignore +7 -7
- package/vscode-extension/oxe-agents-1.0.0.vsix +0 -0
- package/vscode-extension/package.json +185 -185
- package/vscode-extension/src/extension.js +310 -310
- package/vscode-extension/src/shared/contextLoader.js +137 -137
- package/vscode-extension/src/shared/contractBuilder.js +159 -159
- package/vscode-extension/src/shared/stateReader.js +101 -101
package/oxe/workflows/session.md
CHANGED
|
@@ -1,197 +1,213 @@
|
|
|
1
|
-
# OXE — Workflow: session
|
|
2
|
-
|
|
3
|
-
<objective>
|
|
4
|
-
Gerenciar **sessões OXE** em `.oxe/sessions/` para isolar artefatos por ciclo de trabalho, mantendo **`.oxe/STATE.md`** como índice global e preservando o **modo legado** quando não houver sessão ativa.
|
|
5
|
-
|
|
6
|
-
Subcomandos:
|
|
7
|
-
- `new <nome>`
|
|
8
|
-
- `list`
|
|
9
|
-
- `switch <id-ou-nome>`
|
|
10
|
-
- `resume <id-ou-nome>`
|
|
11
|
-
- `status`
|
|
12
|
-
- `close`
|
|
13
|
-
- `migrate <nome>`
|
|
14
|
-
- `fork [nome-opcional]`
|
|
15
|
-
- `revert <checkpoint-slug>`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
</
|
|
42
|
-
|
|
43
|
-
<
|
|
44
|
-
## `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
- `
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
1
|
+
# OXE — Workflow: session
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Gerenciar **sessões OXE** em `.oxe/sessions/` para isolar artefatos por ciclo de trabalho, mantendo **`.oxe/STATE.md`** como índice global e preservando o **modo legado** quando não houver sessão ativa.
|
|
5
|
+
|
|
6
|
+
Subcomandos de sessão:
|
|
7
|
+
- `new <nome>`
|
|
8
|
+
- `list`
|
|
9
|
+
- `switch <id-ou-nome>`
|
|
10
|
+
- `resume <id-ou-nome>`
|
|
11
|
+
- `status`
|
|
12
|
+
- `close`
|
|
13
|
+
- `migrate <nome>`
|
|
14
|
+
- `fork [nome-opcional]`
|
|
15
|
+
- `revert <checkpoint-slug>`
|
|
16
|
+
|
|
17
|
+
Subcomandos de milestone (absorvidos de `/oxe-project` e `/oxe-milestone`):
|
|
18
|
+
- `milestone new [nome]` — iniciar marco de entrega (M-01, M-02, …)
|
|
19
|
+
- `milestone complete` — fechar milestone ativo, arquivar em `.oxe/milestones/M-NN/`
|
|
20
|
+
- `milestone status` — progresso do milestone ativo
|
|
21
|
+
- `milestone audit` — Definition of Done do milestone
|
|
22
|
+
|
|
23
|
+
Subcomandos de workstream (absorvidos de `/oxe-project` e `/oxe-workstream`):
|
|
24
|
+
- `workstream new <nome>` — trilha paralela em `.oxe/workstreams/<nome>/`
|
|
25
|
+
- `workstream switch <nome>` — definir workstream ativo
|
|
26
|
+
- `workstream list` — listar trilhas
|
|
27
|
+
- `workstream close <nome>` — fechar trilha
|
|
28
|
+
|
|
29
|
+
Sem argumento: mostrar status atual (sessão ativa, milestone, workstream ativo).
|
|
30
|
+
|
|
31
|
+
**Nota de compatibilidade v1.1.0:** `/oxe-project`, `/oxe-milestone` e `/oxe-workstream` foram incorporados por este comando. Esses comandos legados continuam funcionando mas exibem aviso de migração.
|
|
32
|
+
</objective>
|
|
33
|
+
|
|
34
|
+
<context>
|
|
35
|
+
- Fonte de regra de path: `oxe/workflows/references/session-path-resolution.md`
|
|
36
|
+
- Template da sessão: `oxe/templates/SESSION.template.md`
|
|
37
|
+
- Índice global: `.oxe/SESSIONS.md`
|
|
38
|
+
- Sessão ativa fica sempre em `.oxe/STATE.md`, campo `active_session`, com path relativo completo: `sessions/sNNN-slug`
|
|
39
|
+
- Sem sessão ativa, os workflows continuam a operar na raiz `.oxe/`
|
|
40
|
+
- Esta entrega é **workflows only**: `oxe-cc status` / `doctor` continuam legados e isso deve ser assumido nesta versão
|
|
41
|
+
</context>
|
|
42
|
+
|
|
43
|
+
<index_format>
|
|
44
|
+
## Formato fixo de `.oxe/SESSIONS.md`
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# OXE — Índice de sessões
|
|
48
|
+
|
|
49
|
+
| ID | Nome | Status | Criada | Última atividade | Resumo | Path |
|
|
50
|
+
|----|------|--------|--------|------------------|--------|------|
|
|
51
|
+
| s001 | auth-redesign | active | 2026-04-07 | 2026-04-07 | Sessão criada por migrate | `sessions/s001-auth-redesign` |
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- Linha mais recente no topo
|
|
55
|
+
- `switch` e `resume` atualizam **Última atividade**
|
|
56
|
+
- `close` atualiza **Status** para `archived`
|
|
57
|
+
</index_format>
|
|
58
|
+
|
|
59
|
+
<process_new>
|
|
60
|
+
## `new <nome>`
|
|
61
|
+
|
|
62
|
+
1. Garantir `.oxe/`, `.oxe/sessions/` e `.oxe/global/`.
|
|
63
|
+
2. Normalizar o nome para slug ASCII em kebab-case.
|
|
64
|
+
3. Ler `.oxe/SESSIONS.md` se existir; calcular o próximo ID `sNNN`.
|
|
65
|
+
4. Criar `.oxe/sessions/sNNN-slug/` com:
|
|
66
|
+
- `spec/`
|
|
67
|
+
- `plan/`
|
|
68
|
+
- `execution/`
|
|
69
|
+
- `verification/`
|
|
70
|
+
- `checkpoints/`
|
|
71
|
+
- `research/`
|
|
72
|
+
- `artifacts/`
|
|
73
|
+
- `workstreams/`
|
|
74
|
+
5. Criar `SESSION.md` a partir de `SESSION.template.md`.
|
|
75
|
+
6. Criar ou atualizar `.oxe/SESSIONS.md` com a nova linha no topo.
|
|
76
|
+
7. Atualizar `.oxe/STATE.md`:
|
|
77
|
+
- `active_session: sessions/sNNN-slug`
|
|
78
|
+
- `session_id: sNNN`
|
|
79
|
+
- fase resumida e próximo passo coerentes com a sessão nova
|
|
80
|
+
8. Responder no chat com ID, path da sessão e próximo passo sugerido.
|
|
81
|
+
</process_new>
|
|
82
|
+
|
|
83
|
+
<process_list>
|
|
84
|
+
## `list`
|
|
85
|
+
|
|
86
|
+
1. Ler `.oxe/SESSIONS.md`.
|
|
87
|
+
2. Se o ficheiro não existir, responder que não há sessões registadas.
|
|
88
|
+
3. Exibir a tabela do índice; se o utilizador pedir filtro, aceitar `--status active|archived`.
|
|
89
|
+
</process_list>
|
|
90
|
+
|
|
91
|
+
<process_switch>
|
|
92
|
+
## `switch <id-ou-nome>`
|
|
93
|
+
|
|
94
|
+
1. Ler `.oxe/SESSIONS.md`.
|
|
95
|
+
2. Resolver a sessão por `sNNN`, slug ou nome exibido na tabela.
|
|
96
|
+
3. Atualizar `.oxe/STATE.md` global:
|
|
97
|
+
- `active_session`
|
|
98
|
+
- `session_id`
|
|
99
|
+
- `Última atividade` dessa sessão em `.oxe/SESSIONS.md`
|
|
100
|
+
4. Não mover artefatos; apenas mudar o contexto ativo.
|
|
101
|
+
</process_switch>
|
|
102
|
+
|
|
103
|
+
<process_resume>
|
|
104
|
+
## `resume <id-ou-nome>`
|
|
105
|
+
|
|
106
|
+
- Mesmo comportamento de `switch`
|
|
107
|
+
- Usar wording de retomada no chat, mas sem lógica diferente
|
|
108
|
+
</process_resume>
|
|
109
|
+
|
|
110
|
+
<process_status>
|
|
111
|
+
## `status`
|
|
112
|
+
|
|
113
|
+
1. Ler `.oxe/STATE.md` global.
|
|
114
|
+
2. Se houver `active_session`, abrir `SESSION.md` da sessão ativa e resumir:
|
|
115
|
+
- metadados
|
|
116
|
+
- índice de artefatos
|
|
117
|
+
- tags
|
|
118
|
+
- último evento do histórico
|
|
119
|
+
3. Se não houver sessão ativa, responder com a tabela de `.oxe/SESSIONS.md` (equivalente funcional a `list`).
|
|
120
|
+
</process_status>
|
|
121
|
+
|
|
122
|
+
<process_close>
|
|
123
|
+
## `close`
|
|
124
|
+
|
|
125
|
+
1. Ler `.oxe/STATE.md`; se não houver sessão ativa, pausar e informar.
|
|
126
|
+
2. Abrir `SESSION.md` da sessão ativa e marcar `Status: archived`.
|
|
127
|
+
3. Atualizar `.oxe/SESSIONS.md` com `Status = archived` e `Última atividade = hoje`.
|
|
128
|
+
4. Limpar de `.oxe/STATE.md`:
|
|
129
|
+
- `active_session`
|
|
130
|
+
- `session_id`
|
|
131
|
+
5. Responder com a sessão encerrada e lembrar que sessões arquivadas continuam legíveis.
|
|
132
|
+
</process_close>
|
|
133
|
+
|
|
134
|
+
<process_migrate>
|
|
135
|
+
## `migrate <nome>`
|
|
136
|
+
|
|
137
|
+
1. Executar logicamente `new <nome>` para abrir uma nova sessão.
|
|
138
|
+
2. Mover apenas artefatos session-scoped existentes da raiz `.oxe/`:
|
|
139
|
+
- `SPEC.md`, `ROADMAP.md`, `DISCUSS.md`, `UI-SPEC.md` → `spec/`
|
|
140
|
+
- `PLAN.md`, `QUICK.md`, `plan-agents.json`, `quick-agents.json`, `plan-agent-messages/` → `plan/`
|
|
141
|
+
- `OBSERVATIONS.md`, `DEBUG.md`, `FORENSICS.md`, `SUMMARY.md` → `execution/`
|
|
142
|
+
- `VERIFY.md`, `VALIDATION-GAPS.md`, `SECURITY.md`, `UI-REVIEW.md` → `verification/`
|
|
143
|
+
- `checkpoints/`, `CHECKPOINTS.md` → `checkpoints/`
|
|
144
|
+
- `research/`, `RESEARCH.md` → `research/`
|
|
145
|
+
- `workstreams/` → `workstreams/`
|
|
146
|
+
3. Não mover:
|
|
147
|
+
- `.oxe/STATE.md`
|
|
148
|
+
- `.oxe/config.json`
|
|
149
|
+
- `.oxe/codebase/`
|
|
150
|
+
- `.oxe/SESSIONS.md`
|
|
151
|
+
- `.oxe/global/`
|
|
152
|
+
4. No chat, listar:
|
|
153
|
+
- movidos
|
|
154
|
+
- mantidos globais
|
|
155
|
+
- ignorados por inexistência
|
|
156
|
+
</process_migrate>
|
|
157
|
+
|
|
158
|
+
<process_fork>
|
|
159
|
+
## `fork [nome-opcional]`
|
|
160
|
+
|
|
161
|
+
1. Verificar que existe `active_session` em `.oxe/STATE.md`. Se não houver, informar e sair.
|
|
162
|
+
2. Ler `SESSION.md` da sessão ativa; anotar ID de origem (`sNNN`).
|
|
163
|
+
3. Calcular próximo ID `sMMM` a partir de `.oxe/SESSIONS.md`.
|
|
164
|
+
4. Se nome não fornecido, usar `fork-<slug-original>`.
|
|
165
|
+
5. Criar `.oxe/sessions/sMMM-<slug>/` com as mesmas subpastas: `spec/`, `plan/`, `execution/`, `verification/`, `checkpoints/`, `research/`, `artifacts/`, `workstreams/`.
|
|
166
|
+
6. **Copiar** (não mover) todos os arquivos da sessão ativa para a nova sessão, preservando estrutura de diretórios. Não copiar diretórios vazios.
|
|
167
|
+
7. Criar `SESSION.md` na nova sessão a partir de `SESSION.template.md`, com:
|
|
168
|
+
- `forked_from: sNNN`
|
|
169
|
+
- `forked_at: YYYY-MM-DD`
|
|
170
|
+
- `Status: active`
|
|
171
|
+
- `Resumo: Fork de sNNN — <slug-original>`
|
|
172
|
+
8. Atualizar `.oxe/SESSIONS.md`:
|
|
173
|
+
- Adicionar linha da nova sessão (topo, status `active`)
|
|
174
|
+
- **Não** alterar status da sessão original
|
|
175
|
+
9. Atualizar `.oxe/STATE.md`:
|
|
176
|
+
- `active_session: sessions/sMMM-<slug>`
|
|
177
|
+
- `session_id: sMMM`
|
|
178
|
+
10. Registar evento no Histórico da SESSION.md original: `YYYY-MM-DD | Forked → sMMM`
|
|
179
|
+
11. Responder no chat: ID novo, path, contagem de artefatos copiados, e lembrar que a sessão original permanece intacta.
|
|
180
|
+
</process_fork>
|
|
181
|
+
|
|
182
|
+
<process_revert>
|
|
183
|
+
## `revert <checkpoint-slug>`
|
|
184
|
+
|
|
185
|
+
1. Verificar que existe sessão ativa ou operar na raiz `.oxe/`.
|
|
186
|
+
2. Resolver o checkpoint: procurar em `checkpoints/` (do escopo resolvido) arquivo cujo slug corresponda ao argumento. Se não encontrar, listar checkpoints disponíveis e pedir escolha.
|
|
187
|
+
3. Ler o conteúdo do checkpoint (seção `## Snapshot`):
|
|
188
|
+
- Extrair campos de STATE: `phase`, `next_step` (campo `Comando:`), `execute_mode`, `Última onda executada`, `Tarefas concluídas`
|
|
189
|
+
4. Atualizar `.oxe/STATE.md` com os valores do snapshot:
|
|
190
|
+
- Sobrescrever os campos extraídos do snapshot
|
|
191
|
+
- **Não apagar** campos ausentes no snapshot (preservar `active_session`, `session_id`, config refs, etc.)
|
|
192
|
+
5. Registar no Histórico da SESSION.md (se sessão ativa): `YYYY-MM-DD | Revertido para checkpoint <slug>`
|
|
193
|
+
6. Registar evento em `EXECUTION-RUNTIME.md` se existir: `Revert to checkpoint <slug>`
|
|
194
|
+
7. Responder no chat: quais campos foram restaurados, quais permaneceram intactos, e próximo passo sugerido baseado no STATE restaurado.
|
|
195
|
+
</process_revert>
|
|
196
|
+
|
|
197
|
+
<process_default>
|
|
198
|
+
## Sem subcomando
|
|
199
|
+
|
|
200
|
+
- Se houver sessão ativa: executar `status`
|
|
201
|
+
- Se não houver sessão ativa: executar `list`
|
|
202
|
+
</process_default>
|
|
203
|
+
|
|
204
|
+
<success_criteria>
|
|
205
|
+
- [ ] `.oxe/sessions/sNNN-slug/` é o path da sessão criado/consultado.
|
|
206
|
+
- [ ] `active_session` guarda o path relativo completo no `STATE.md` global.
|
|
207
|
+
- [ ] `.oxe/SESSIONS.md` usa as colunas mínimas `ID | Nome | Status | Criada | Última atividade | Resumo | Path`.
|
|
208
|
+
- [ ] `close` arquiva sem apagar artefatos.
|
|
209
|
+
- [ ] `migrate` move só artefatos session-scoped e preserva os globais.
|
|
210
|
+
- [ ] `fork` cria sessão nova com cópia dos artefatos sem modificar a sessão de origem.
|
|
211
|
+
- [ ] `fork` registra `forked_from` na SESSION.md da sessão derivada.
|
|
212
|
+
- [ ] `revert` restaura STATE.md a partir do snapshot do checkpoint, sem apagar campos ausentes.
|
|
213
|
+
</success_criteria>
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# OXE — Workflow: ship (entrega / commit)
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Criar um commit local a partir do trabalho verificado — gerando a mensagem de commit a partir de `SPEC.md`, `PLAN.md` e `VERIFY.md` e chamando `git commit`.
|
|
5
|
+
|
|
6
|
+
Fecha o ciclo de desenvolvimento com um commit limpo, rastreável e alinhado aos artefatos OXE.
|
|
7
|
+
</objective>
|
|
8
|
+
|
|
9
|
+
<flags>
|
|
10
|
+
- `--message "mensagem"` — sobrescreve a mensagem de commit gerada automaticamente.
|
|
11
|
+
- `--amend` — usa `git commit --amend` em vez de criar um commit novo.
|
|
12
|
+
- `--verify-first` — rodar `/oxe-verify` antes de criar o PR se VERIFY ainda não passou.
|
|
13
|
+
- `--no-checks` — pular checagem de verify (commitar mesmo sem verify completo — gera aviso).
|
|
14
|
+
- `--dry-run` — mostrar a mensagem de commit e o comando `git commit` sem commitar.
|
|
15
|
+
</flags>
|
|
16
|
+
|
|
17
|
+
<context>
|
|
18
|
+
- Ship requer que `VERIFY.md` exista e indique aprovação, OU que o usuário confirme explicitamente com `--no-checks`.
|
|
19
|
+
- A mensagem de commit é gerada a partir dos artefatos OXE — não a partir do histórico git cru.
|
|
20
|
+
- Salvar o rascunho da mensagem em `.oxe/commit-draft.md`.
|
|
21
|
+
- Salvar referência do commit em `.oxe/commit-record.json` após commitar.
|
|
22
|
+
- Se houver alterações não relacionadas no worktree, pausar e pedir confirmação antes de stagear tudo.
|
|
23
|
+
</context>
|
|
24
|
+
|
|
25
|
+
<process>
|
|
26
|
+
|
|
27
|
+
### Step 1 — Pré-voo
|
|
28
|
+
|
|
29
|
+
1. Ler `.oxe/STATE.md` e sessão ativa (se houver).
|
|
30
|
+
2. Verificar branch atual: `git branch --show-current`.
|
|
31
|
+
3. Verificar status do verify:
|
|
32
|
+
- Existe `VERIFY.md` e está aprovado? → continuar.
|
|
33
|
+
- Existe `VERIFY.md` mas tem falhas? → avisar. Se `--no-checks`, continuar. Se não, sugerir `/oxe-verify` primeiro.
|
|
34
|
+
- Não existe `VERIFY.md`? → se `--verify-first`, executar `oxe/workflows/verify.md` antes de continuar. Caso contrário: bloquear a entrega e orientar `/oxe-verify` ou `--no-checks`.
|
|
35
|
+
|
|
36
|
+
4. Verificar worktree (`git status --short`):
|
|
37
|
+
- Se não houver mudanças staged ou unstaged: informar que não há nada para commitar e encerrar.
|
|
38
|
+
- Se houver mudanças fora do escopo planejado: avisar e pedir confirmação antes de prosseguir.
|
|
39
|
+
|
|
40
|
+
### Step 2 — Gerar mensagem de commit
|
|
41
|
+
|
|
42
|
+
Ler os artefatos disponíveis nesta ordem de prioridade:
|
|
43
|
+
1. `SPEC.md` (ou `QUICK.md` se for quick task) → objetivo / resumo curto
|
|
44
|
+
2. `PLAN.md` → tarefas concluídas / ondas fechadas
|
|
45
|
+
3. `VERIFY.md` → checks passados, evidências, riscos residuais
|
|
46
|
+
4. `CONCERNS.md` ou `SUMMARY.md` → notas adicionais se houver
|
|
47
|
+
|
|
48
|
+
Template da mensagem:
|
|
49
|
+
```markdown
|
|
50
|
+
feat: <descrição concisa em <= 72 chars>
|
|
51
|
+
|
|
52
|
+
<Resumo de 1-2 parágrafos derivado de SPEC/QUICK e PLAN>
|
|
53
|
+
|
|
54
|
+
Validation:
|
|
55
|
+
- <check 1>
|
|
56
|
+
- <check 2>
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
OXE: spec-driven workflow
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Gerar também uma variante `fix:` ou `refactor:` quando os artefatos indicarem esse tipo de mudança. Se `--message` existir, usá-la como título e manter o corpo gerado abaixo.
|
|
63
|
+
|
|
64
|
+
Salvar a mensagem em `.oxe/commit-draft.md`.
|
|
65
|
+
|
|
66
|
+
### Step 3 — Stage e commit
|
|
67
|
+
|
|
68
|
+
1. Fazer stage explícito:
|
|
69
|
+
- padrão: `git add -A`
|
|
70
|
+
- se houver arquivos claramente fora do escopo, parar e confirmar antes
|
|
71
|
+
2. Executar:
|
|
72
|
+
- commit novo:
|
|
73
|
+
```bash
|
|
74
|
+
git commit -F .oxe/commit-draft.md
|
|
75
|
+
```
|
|
76
|
+
- amend:
|
|
77
|
+
```bash
|
|
78
|
+
git commit --amend -F .oxe/commit-draft.md
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Salvar em `.oxe/commit-record.json`:
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"commit_sha": "<sha>",
|
|
85
|
+
"subject": "...",
|
|
86
|
+
"amend": false,
|
|
87
|
+
"committed_at": "ISO",
|
|
88
|
+
"branch": "...",
|
|
89
|
+
"verify_status": "passed|skipped|failed_with_override"
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Se `git commit` falhar por hooks, conflitos ou falta de stage válido:
|
|
94
|
+
- registrar o erro
|
|
95
|
+
- não apagar `.oxe/commit-draft.md`
|
|
96
|
+
- reportar o bloqueio com o comando falhado
|
|
97
|
+
|
|
98
|
+
### Step 4 — Saída final
|
|
99
|
+
|
|
100
|
+
**Sucesso:**
|
|
101
|
+
```
|
|
102
|
+
✓ Commit criado: [sha-curto]
|
|
103
|
+
Branch: [current]
|
|
104
|
+
Mensagem: [subject]
|
|
105
|
+
Próximo: push manual, revisão de diff ou /oxe-session milestone (se for a última feature do ciclo)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Dry-run:**
|
|
109
|
+
```
|
|
110
|
+
[dry-run] Commit não criado. Mensagem gerada em .oxe/commit-draft.md
|
|
111
|
+
Comando para commitar: git commit -F .oxe/commit-draft.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Falha / bloqueio:**
|
|
115
|
+
```
|
|
116
|
+
Commit não realizado. Rascunho mantido em .oxe/commit-draft.md
|
|
117
|
+
Resolva o bloqueio (verify, stage, hook ou conflito) e rode /oxe-ship novamente.
|
|
118
|
+
```
|
|
119
|
+
</process>
|
|
120
|
+
|
|
121
|
+
<message_generation>
|
|
122
|
+
## Geração automática da mensagem
|
|
123
|
+
|
|
124
|
+
O subject é gerado a partir de `SPEC.md` (primeira linha de objetivo) ou de `QUICK.md` (primeira tarefa):
|
|
125
|
+
|
|
126
|
+
Formato padrão: `feat: [descrição concisa da feature em ≤ 72 chars]`
|
|
127
|
+
|
|
128
|
+
Exemplos:
|
|
129
|
+
- `feat: add OAuth2 login with Google provider`
|
|
130
|
+
- `fix: resolve race condition in payment processor`
|
|
131
|
+
- `refactor: extract auth middleware to standalone module`
|
|
132
|
+
|
|
133
|
+
Se houver ticket/issue referenciado na SPEC: `feat(AUTH-123): add OAuth2 login`
|
|
134
|
+
</message_generation>
|
|
135
|
+
|
|
136
|
+
<success_criteria>
|
|
137
|
+
- [ ] Commit criado (ou dry-run mostrou a mensagem e o comando).
|
|
138
|
+
- [ ] `.oxe/commit-record.json` atualizado com SHA e subject.
|
|
139
|
+
- [ ] Mensagem de commit inclui resumo derivado de SPEC/QUICK, mudanças de PLAN e validação de VERIFY.
|
|
140
|
+
- [ ] Se VERIFY não passou: só continuou com `--no-checks`, com aviso explícito.
|
|
141
|
+
- [ ] Sugeriu próximo passo (push, revisão de diff ou milestone).
|
|
142
|
+
</success_criteria>
|