@amsterdamdatalabs/enact-extensions 0.1.12 → 0.1.25
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 +11 -12
- package/dist/create/enact.js +1 -1
- package/dist/create/enact.js.map +1 -1
- package/dist/create/index.d.ts +4 -3
- package/dist/create/index.d.ts.map +1 -1
- package/dist/create/index.js +9 -2
- package/dist/create/index.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +5 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +10 -3
- package/dist/install.js.map +1 -1
- package/dist/internal/agents.d.ts +6 -1
- package/dist/internal/agents.d.ts.map +1 -1
- package/dist/internal/agents.js +8 -4
- package/dist/internal/agents.js.map +1 -1
- package/dist/internal/claude.d.ts +24 -0
- package/dist/internal/claude.d.ts.map +1 -1
- package/dist/internal/claude.js +99 -0
- package/dist/internal/claude.js.map +1 -1
- package/dist/internal/platform.d.ts +3 -1
- package/dist/internal/platform.d.ts.map +1 -1
- package/dist/internal/platform.js +7 -1
- package/dist/internal/platform.js.map +1 -1
- package/dist/internal/types.d.ts +2 -1
- package/dist/internal/types.d.ts.map +1 -1
- package/dist/principles.d.ts +28 -0
- package/dist/principles.d.ts.map +1 -0
- package/dist/principles.js +159 -0
- package/dist/principles.js.map +1 -0
- package/extensions/dev-state/.agents/plugin.json +2 -1
- package/extensions/enact-context/.agents/plugin.json +2 -1
- package/extensions/enact-context/hooks/hooks.json +0 -10
- package/extensions/enact-context/skills/enact-context/SKILL.md +14 -12
- package/extensions/enact-context/skills/enact-context/scripts/install.sh +7 -7
- package/extensions/enact-core/.agents/plugin.json +2 -1
- package/extensions/enact-core/OPERATING-PRINCIPLES.md +7 -0
- package/extensions/enact-core/hooks/hooks.json +12 -0
- package/extensions/enact-evolve/.agents/plugin.json +47 -0
- package/extensions/enact-evolve/agents/evolve-session-analyst.toml +37 -0
- package/extensions/enact-evolve/skills/session-analysis/SKILL.md +98 -0
- package/extensions/enact-evolve/skills/session-analysis/scripts/run-evolve-analysis.sh +343 -0
- package/extensions/enact-factory/.agents/plugin.json +2 -2
- package/extensions/enact-factory/agents/architect.toml +9 -5
- package/extensions/enact-factory/agents/code-reviewer.toml +9 -5
- package/extensions/enact-factory/agents/critic.toml +9 -5
- package/extensions/enact-factory/agents/executor.toml +4 -1
- package/extensions/enact-factory/agents/explore.toml +4 -1
- package/extensions/enact-factory/agents/planner.toml +4 -1
- package/extensions/enact-factory/agents/verifier.toml +9 -5
- package/extensions/enact-factory/skills/advisor/SKILL.md +82 -0
- package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +6 -1
- package/extensions/enact-factory/skills/autonomous-runner/SKILL.md +347 -0
- package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +42 -15
- package/extensions/enact-factory/skills/committee/SKILL.md +80 -0
- package/extensions/enact-factory/skills/deep-interview/SKILL.md +9 -13
- package/extensions/enact-factory/skills/drive-loop/SKILL.md +161 -31
- package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +26 -6
- package/extensions/enact-factory/skills/handoff/SKILL.md +72 -0
- package/extensions/enact-factory/skills/hyperplan/SKILL.md +11 -3
- package/extensions/enact-factory/skills/looplan/SKILL.md +34 -17
- package/extensions/enact-factory/skills/plan/SKILL.md +40 -8
- package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +6 -1
- package/extensions/enact-factory/skills/research/SKILL.md +14 -4
- package/extensions/enact-factory/skills/review/SKILL.md +21 -2
- package/extensions/enact-factory/skills/security-research/SKILL.md +5 -2
- package/extensions/enact-factory/skills/tdd/SKILL.md +7 -1
- package/extensions/enact-factory/skills/testing-strategy/SKILL.md +5 -0
- package/extensions/enact-factory/skills/trace/SKILL.md +5 -0
- package/extensions/enact-factory/skills/ultraqa/SKILL.md +21 -15
- package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +5 -0
- package/extensions/enact-factory/skills/workitem-triage/SKILL.md +5 -0
- package/extensions/enact-loop/.agents/plugin.json +5 -4
- package/extensions/enact-loop/scripts/validate.mjs +123 -0
- package/extensions/enact-loop/skills/enact-loop/SKILL.md +189 -30
- package/extensions/enact-wiki/.agents/plugin.json +2 -1
- package/extensions/net-revenue-management/.agents/plugin.json +2 -1
- package/extensions/plugin-dev/.agents/plugin.json +2 -1
- package/extensions/plugin-dev/skills/start/SKILL.md +3 -3
- package/package.json +1 -1
- package/scripts/check-hooks.mjs +5 -5
- package/scripts/check-principles.mjs +19 -4
- package/scripts/enact-extensions.mjs +237 -90
- package/scripts/lib/hooks.mjs +61 -217
- package/scripts/lib/migrate-artifacts.mjs +144 -0
- package/scripts/lib/principles.mjs +109 -0
- package/scripts/lib/provision-mcp.mjs +1 -1
- package/scripts/lib/run-install.mjs +72 -2
- package/scripts/lib/run-prune.mjs +23 -2
- package/scripts/lib/run-sync.mjs +4 -1
- package/scripts/postinstall.mjs +6 -6
- package/scripts/setup-enact-context.sh +20 -15
- package/scripts/version-bump.sh +22 -1
- package/spec/codex.json +5 -0
- package/spec/enact.json +3 -3
- package/spec/enact.md +1 -4
- package/spec/index.json +1 -1
- package/extensions/enact-factory/hooks/hooks.json +0 -14
- package/extensions/enact-operator/.agents/plugin.json +0 -56
- package/extensions/enact-operator/.app.json +0 -3
- package/extensions/enact-operator/.mcp.json +0 -10
- package/extensions/enact-operator/_taxonomy.md +0 -86
- package/extensions/enact-operator/agents/README.md +0 -5
- package/extensions/enact-operator/agents/architect.toml +0 -25
- package/extensions/enact-operator/agents/code-reviewer.toml +0 -24
- package/extensions/enact-operator/agents/critic.toml +0 -30
- package/extensions/enact-operator/agents/executor.toml +0 -24
- package/extensions/enact-operator/agents/explore.toml +0 -23
- package/extensions/enact-operator/agents/planner.toml +0 -24
- package/extensions/enact-operator/agents/verifier.toml +0 -24
- package/extensions/enact-operator/docs/skill-variants.md +0 -44
- package/extensions/enact-operator/hooks/hooks.json +0 -91
- package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +0 -50
- package/extensions/enact-operator/skills/analyze/SKILL.md +0 -91
- package/extensions/enact-operator/skills/ask/SKILL.md +0 -47
- package/extensions/enact-operator/skills/autopilot/SKILL.md +0 -170
- package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +0 -79
- package/extensions/enact-operator/skills/cancel/SKILL.md +0 -99
- package/extensions/enact-operator/skills/configure-notifications/SKILL.md +0 -77
- package/extensions/enact-operator/skills/deep-interview/SKILL.md +0 -80
- package/extensions/enact-operator/skills/doctor/SKILL.md +0 -48
- package/extensions/enact-operator/skills/hud/SKILL.md +0 -49
- package/extensions/enact-operator/skills/hyperplan/SKILL.md +0 -47
- package/extensions/enact-operator/skills/plan/SKILL.md +0 -78
- package/extensions/enact-operator/skills/ralph/SKILL.md +0 -201
- package/extensions/enact-operator/skills/ralph/gemini.md +0 -18
- package/extensions/enact-operator/skills/ralplan/SKILL.md +0 -151
- package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +0 -45
- package/extensions/enact-operator/skills/research/SKILL.md +0 -74
- package/extensions/enact-operator/skills/review/SKILL.md +0 -58
- package/extensions/enact-operator/skills/security-research/SKILL.md +0 -54
- package/extensions/enact-operator/skills/setup/SKILL.md +0 -91
- package/extensions/enact-operator/skills/setup/scripts/install.sh +0 -50
- package/extensions/enact-operator/skills/skill/SKILL.md +0 -82
- package/extensions/enact-operator/skills/tdd/SKILL.md +0 -59
- package/extensions/enact-operator/skills/team/SKILL.md +0 -199
- package/extensions/enact-operator/skills/trace/SKILL.md +0 -41
- package/extensions/enact-operator/skills/ultragoal/SKILL.md +0 -99
- package/extensions/enact-operator/skills/ultraqa/SKILL.md +0 -113
- package/extensions/enact-operator/skills/ultrawork/SKILL.md +0 -145
- package/extensions/enact-operator/skills/ultrawork/planner.md +0 -28
- package/extensions/enact-operator/skills/wiki/SKILL.md +0 -41
- package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +0 -51
- /package/extensions/{enact-operator → enact-evolve}/assets/icon.png +0 -0
- /package/extensions/{enact-operator → enact-evolve}/assets/logo.png +0 -0
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: autoresearch-goal
|
|
3
|
-
description: "Autoresearch directed at a specific durable goal: findings persist to .enact/operator/research/ and can be linked into ultrawork state."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Autoresearch Goal
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Drives a research cycle that is anchored to a concrete, long-running goal rather than a one-off question. Findings are persisted to `.enact/operator/research/` and linked into ultrawork state so the next session can resume with full context. The research is complete only when the findings are specific enough to drive a concrete implementation or rollout decision.
|
|
11
|
-
|
|
12
|
-
## Use When
|
|
13
|
-
|
|
14
|
-
- a goal requires understanding a codebase, API, or system before implementation can begin
|
|
15
|
-
- research must span multiple sessions and accumulate incrementally
|
|
16
|
-
- findings need to be accessible to future execution sessions without re-running the research
|
|
17
|
-
|
|
18
|
-
## Workflow
|
|
19
|
-
|
|
20
|
-
1. Define the research goal clearly. It must end in a concrete decision or artifact, not an open-ended survey.
|
|
21
|
-
2. Start durable state for the research session:
|
|
22
|
-
- MCP: `operator_session_start`
|
|
23
|
-
- CLI fallback: `enact-operator session start`
|
|
24
|
-
3. Start ultrawork to track the research lane:
|
|
25
|
-
- MCP: `operator_ultrawork_start`
|
|
26
|
-
- CLI fallback: `enact-operator ultrawork start "Research: <goal description>" --route plan-only`
|
|
27
|
-
4. Link the research handle into ultrawork:
|
|
28
|
-
- MCP: `operator_ultrawork_link_research`
|
|
29
|
-
- CLI fallback: `enact-operator ultrawork link-research <goalId>`
|
|
30
|
-
5. Conduct the research:
|
|
31
|
-
- use `ctx_search`, `ctx_semantic_search`, `ctx_graph`, and `ctx_tree` for codebase-level investigation
|
|
32
|
-
- use `operator_audit_provider_boundary` for boundary questions
|
|
33
|
-
- use external documentation tools for API or SDK questions
|
|
34
|
-
6. Write incremental findings to `.enact/operator/research/<goalId>.md` as the research progresses. Each write appends a dated section.
|
|
35
|
-
7. When findings are sufficient to drive a decision, summarize them in a Conclusion section in the research file.
|
|
36
|
-
8. Record verification evidence for the research pass:
|
|
37
|
-
- MCP: `operator_ultrawork_verify`
|
|
38
|
-
- CLI fallback: `enact-operator ultrawork verify "<evidence>"`
|
|
39
|
-
9. When the research goal is met, complete the ultrawork session:
|
|
40
|
-
- MCP: `operator_ultrawork_complete`
|
|
41
|
-
- CLI fallback: `enact-operator ultrawork complete "<summary>"`
|
|
42
|
-
|
|
43
|
-
## Runtime Clarification
|
|
44
|
-
|
|
45
|
-
- `autoresearch` / `autoresearch-goal` remain future lane candidates, not
|
|
46
|
-
current exposed AzDo runtime values.
|
|
47
|
-
- If research is being used as closure evidence for a live task, prefer the
|
|
48
|
-
real parity/hygiene surfaces over narrative-only conclusions:
|
|
49
|
-
- `operator_contract_parity_run`
|
|
50
|
-
- `operator_workflow_reconcile`
|
|
51
|
-
- `operator_operator_snapshot`
|
|
52
|
-
|
|
53
|
-
## State Contract
|
|
54
|
-
|
|
55
|
-
- reads: codebase files, CLI output, external docs
|
|
56
|
-
- writes:
|
|
57
|
-
- `.enact/operator/research/<goalId>.md`
|
|
58
|
-
- ultrawork session state via `operator_ultrawork_*`
|
|
59
|
-
|
|
60
|
-
## Commands
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
enact-operator session start
|
|
64
|
-
enact-operator ultrawork start "Research: <goal description>" --route plan-only
|
|
65
|
-
enact-operator ultrawork link-research <goalId>
|
|
66
|
-
enact-operator ultrawork verify "<evidence>"
|
|
67
|
-
enact-operator ultrawork complete "<summary>"
|
|
68
|
-
enact-operator audit provider-boundary
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Activation
|
|
72
|
-
|
|
73
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
74
|
-
## Final Check
|
|
75
|
-
|
|
76
|
-
- `.enact/operator/research/<goalId>.md` contains a Conclusion section with a concrete decision or recommendation
|
|
77
|
-
- ultrawork session is verified or completed, not left dangling
|
|
78
|
-
- research artifact is linked to ultrawork state
|
|
79
|
-
- no research session is left active across context boundaries without recorded evidence
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cancel
|
|
3
|
-
description: "Explicit termination of any active Operator mode (ralph, ultrawork, team). Cleans up state and leaves no dangling sessions."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Cancel
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Stops all active Operator execution modes cleanly. Each running mode (ralph loops, ultrawork sessions, team sessions) must be explicitly aborted or shut down — not just ignored. After cancel completes, no session remains in a running, claimed, or paused state.
|
|
10
|
-
|
|
11
|
-
## Use When
|
|
12
|
-
- A ralph loop, ultrawork session, or team session must be stopped before it completes
|
|
13
|
-
- A session is stuck, blocked indefinitely, or no longer relevant
|
|
14
|
-
- The operator wants a clean slate before starting a new workflow
|
|
15
|
-
|
|
16
|
-
## Execution Policy
|
|
17
|
-
|
|
18
|
-
- start from the repo and `.enact/operator/` truth, not chat memory
|
|
19
|
-
- if `operator_*` tools are not visible yet, load/search the Enact Operator MCP namespace before doing cancellation work
|
|
20
|
-
- drive cancellation through MCP tools when running inside Codex; CLI commands are the equivalent operator surface
|
|
21
|
-
- keep state current as you go — confirm each abort before moving to the next mode
|
|
22
|
-
|
|
23
|
-
## Lifecycle
|
|
24
|
-
|
|
25
|
-
### Step 1 — Inventory active modes
|
|
26
|
-
Check each execution surface for active state:
|
|
27
|
-
- MCP: `operator_ralph_status`, `operator_ultrawork_status`, `operator_team_status`
|
|
28
|
-
- CLI:
|
|
29
|
-
```
|
|
30
|
-
enact-operator ralph status
|
|
31
|
-
enact-operator ultrawork status
|
|
32
|
-
enact-operator team status
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Step 2 — Cancel ralph loops
|
|
36
|
-
For each loop returned by ralph status that is not already complete:
|
|
37
|
-
- MCP: `operator_ralph_abort` with `reason`
|
|
38
|
-
- CLI: `enact-operator ralph abort <loopId>`
|
|
39
|
-
|
|
40
|
-
### Step 3 — Cancel ultrawork sessions
|
|
41
|
-
For each session returned by ultrawork status that is not already complete:
|
|
42
|
-
- MCP: `operator_ultrawork_abort` with `reason`
|
|
43
|
-
- CLI: `enact-operator ultrawork abort <sessionId>`
|
|
44
|
-
|
|
45
|
-
### Step 4 — Shut down team sessions
|
|
46
|
-
For each team session returned by team status that is live:
|
|
47
|
-
- MCP: `operator_team_shutdown`
|
|
48
|
-
- CLI fallback: `enact-operator team shutdown`
|
|
49
|
-
|
|
50
|
-
### Step 5 — Verify clean state
|
|
51
|
-
Re-run each status command and confirm no active sessions remain:
|
|
52
|
-
- MCP: `operator_ralph_status`, `operator_ultrawork_status`, `operator_team_status`
|
|
53
|
-
- CLI:
|
|
54
|
-
```
|
|
55
|
-
enact-operator ralph status
|
|
56
|
-
enact-operator ultrawork status
|
|
57
|
-
enact-operator team status
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Step 6 — Confirm with doctor
|
|
61
|
-
- MCP: `operator_doctor`
|
|
62
|
-
- CLI: `enact-operator doctor`
|
|
63
|
-
|
|
64
|
-
## State Contract
|
|
65
|
-
- Reads: active session IDs from ralph status, ultrawork status, team status
|
|
66
|
-
- Writes: abort/shutdown records in `.enact/operator/state/` (managed by MCP tools or CLI commands)
|
|
67
|
-
- Does NOT delete `.enact/operator/` audit history unless the operator explicitly requests it
|
|
68
|
-
|
|
69
|
-
## MCP Tools
|
|
70
|
-
|
|
71
|
-
- `operator_ralph_status` — read current ralph state
|
|
72
|
-
- `operator_ralph_abort` — abort a ralph loop with a reason
|
|
73
|
-
- `operator_ultrawork_status` — read current ultrawork state
|
|
74
|
-
- `operator_ultrawork_abort` — abort an ultrawork session with a reason
|
|
75
|
-
- `operator_team_status` — read current team session state
|
|
76
|
-
- `operator_doctor` — confirm runtime health after cancellation
|
|
77
|
-
|
|
78
|
-
Prefer `operator_team_shutdown` when the Operator MCP namespace is available. The CLI remains a fallback operator surface.
|
|
79
|
-
|
|
80
|
-
## Commands
|
|
81
|
-
```
|
|
82
|
-
enact-operator ralph status
|
|
83
|
-
enact-operator ralph abort <loopId>
|
|
84
|
-
enact-operator ultrawork status
|
|
85
|
-
enact-operator ultrawork abort <sessionId>
|
|
86
|
-
enact-operator team status
|
|
87
|
-
enact-operator team shutdown
|
|
88
|
-
enact-operator doctor
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Activation
|
|
92
|
-
|
|
93
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
94
|
-
## Final Check
|
|
95
|
-
- `operator_ralph_status` shows no loops in `running` or `paused` state
|
|
96
|
-
- `operator_ultrawork_status` shows no sessions in `running` or `blocked` state
|
|
97
|
-
- `operator_team_status` shows no active team session
|
|
98
|
-
- `operator_doctor` reports clean
|
|
99
|
-
- Audit history in `.enact/operator/` is intact unless operator requested a clear
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: configure-notifications
|
|
3
|
-
description: "Operator-level notification configuration: read and write .enact/operator/state/notifications.json to control Operator runtime visibility."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Configure Notifications
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Manages operator notification preferences for Operator runtime events. Notification configuration is stored in `.enact/operator/state/notifications.json`. This skill reads the current config, applies the requested changes, and verifies that Operator health is unaffected. There is no dedicated CLI command for notifications yet; this skill is operator-driven via direct file editing.
|
|
10
|
-
|
|
11
|
-
## Use When
|
|
12
|
-
- The operator wants to change which Operator events trigger notifications
|
|
13
|
-
- Notification delivery is broken or generating noise and needs to be adjusted
|
|
14
|
-
- Setting up notification preferences for the first time in a new project
|
|
15
|
-
|
|
16
|
-
## Workflow
|
|
17
|
-
1. Read the current notification configuration:
|
|
18
|
-
```
|
|
19
|
-
enact-operator state read notifications
|
|
20
|
-
```
|
|
21
|
-
If no file exists, the default is all events enabled.
|
|
22
|
-
|
|
23
|
-
2. Identify the notification contract. The file at `.enact/operator/state/notifications.json` is the operator's truth. Its shape:
|
|
24
|
-
```json
|
|
25
|
-
{
|
|
26
|
-
"events": {
|
|
27
|
-
"ralph.complete": true,
|
|
28
|
-
"ralph.fail": true,
|
|
29
|
-
"ultrawork.complete": true,
|
|
30
|
-
"ultrawork.block": true,
|
|
31
|
-
"team.task.complete": true,
|
|
32
|
-
"team.task.blocked": true,
|
|
33
|
-
"doctor.fail": true
|
|
34
|
-
},
|
|
35
|
-
"delivery": {
|
|
36
|
-
"console": true,
|
|
37
|
-
"hud": true
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
3. Edit `.enact/operator/state/notifications.json` with the requested changes.
|
|
43
|
-
|
|
44
|
-
4. Verify the configuration is valid JSON (no trailing commas, well-formed):
|
|
45
|
-
```
|
|
46
|
-
node -e "JSON.parse(require('fs').readFileSync('.enact/operator/state/notifications.json','utf8'))"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
5. Run doctor to confirm Operator runtime is unaffected:
|
|
50
|
-
```
|
|
51
|
-
enact-operator doctor
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
6. Check the HUD to confirm visibility settings reflect the new configuration:
|
|
55
|
-
```
|
|
56
|
-
enact-operator hud
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## State Contract
|
|
60
|
-
- Reads: `.enact/operator/state/notifications.json`
|
|
61
|
-
- Writes: `.enact/operator/state/notifications.json`
|
|
62
|
-
|
|
63
|
-
## Commands
|
|
64
|
-
```
|
|
65
|
-
enact-operator state read notifications
|
|
66
|
-
enact-operator doctor
|
|
67
|
-
enact-operator hud
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Activation
|
|
71
|
-
|
|
72
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
73
|
-
## Final Check
|
|
74
|
-
- `.enact/operator/state/notifications.json` is valid JSON
|
|
75
|
-
- Requested event flags match the operator's intent
|
|
76
|
-
- `enact-operator doctor` passes after the edit
|
|
77
|
-
- `enact-operator hud` reflects updated visibility settings
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: deep-interview
|
|
3
|
-
description: "Intent-first clarification loop for vague, risky, or product-heavy work before planning or execution."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deep Interview
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$deep-interview` to turn a fuzzy request into an execution-ready spec. This is not generic brainstorming. It is a focused clarification loop that removes ambiguity before planning or coding.
|
|
11
|
-
|
|
12
|
-
## Use When
|
|
13
|
-
|
|
14
|
-
- the request describes outcomes, not behavior
|
|
15
|
-
- the user is still discovering what they want
|
|
16
|
-
- scope, non-goals, or decision boundaries are unclear
|
|
17
|
-
- a wrong assumption would create expensive rework
|
|
18
|
-
|
|
19
|
-
## Do Not Use When
|
|
20
|
-
|
|
21
|
-
- the request already names files, symbols, and acceptance criteria
|
|
22
|
-
- the user explicitly wants immediate execution and the risk is low
|
|
23
|
-
- the only missing work is architectural decomposition, not intent clarity
|
|
24
|
-
|
|
25
|
-
## Execution Policy
|
|
26
|
-
|
|
27
|
-
- ask one question at a time
|
|
28
|
-
- ask only the highest-leverage unresolved question
|
|
29
|
-
- use repo facts before asking about codebase internals
|
|
30
|
-
- force clarity on non-goals and decision boundaries before handoff
|
|
31
|
-
- keep the interview moving toward a durable artifact, not an endless conversation
|
|
32
|
-
|
|
33
|
-
## Question Order
|
|
34
|
-
|
|
35
|
-
1. Why does this need to exist?
|
|
36
|
-
2. What should be true when it is done?
|
|
37
|
-
3. How far should it go?
|
|
38
|
-
4. What should explicitly stay out?
|
|
39
|
-
5. What may Enact Operator decide without checking again?
|
|
40
|
-
6. What constraints or preferences are hard?
|
|
41
|
-
|
|
42
|
-
## Workflow
|
|
43
|
-
|
|
44
|
-
1. Read current `.enact/operator/` artifacts and inspect the repo if this is brownfield work.
|
|
45
|
-
2. Capture the current hypothesis in `.enact/operator/plans/<phase>-requirements.md`.
|
|
46
|
-
3. Run a one-question loop until these are explicit:
|
|
47
|
-
- goal
|
|
48
|
-
- in-scope
|
|
49
|
-
- out-of-scope
|
|
50
|
-
- acceptance criteria
|
|
51
|
-
- decision boundaries
|
|
52
|
-
4. Refresh the session/state record when the interview starts or resumes:
|
|
53
|
-
- MCP: `operator_session_start`
|
|
54
|
-
- CLI fallback: `enact-operator session start`
|
|
55
|
-
5. Update:
|
|
56
|
-
- `.enact/operator/plans/<phase>-requirements.md`
|
|
57
|
-
- `.enact/operator/research/summary.md`
|
|
58
|
-
- `.enact/operator/state/planning-state.json`
|
|
59
|
-
6. Hand off to `$plan` when the spec is concrete.
|
|
60
|
-
|
|
61
|
-
## Output Standard
|
|
62
|
-
|
|
63
|
-
The finished interview should leave behind:
|
|
64
|
-
|
|
65
|
-
- clear goal
|
|
66
|
-
- explicit non-goals
|
|
67
|
-
- decision boundaries
|
|
68
|
-
- testable acceptance criteria
|
|
69
|
-
- constraints that downstream execution must honor
|
|
70
|
-
|
|
71
|
-
## Stop Conditions
|
|
72
|
-
|
|
73
|
-
Do not hand off while either of these is missing:
|
|
74
|
-
|
|
75
|
-
- non-goals
|
|
76
|
-
- decision boundaries
|
|
77
|
-
|
|
78
|
-
## Activation
|
|
79
|
-
|
|
80
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: doctor
|
|
3
|
-
description: "Health-check mode for Enact Operator install, repo state, plugin wiring, hook status, and runtime degradation."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Doctor
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$doctor` when setup, runtime behavior, hooks, or the source plugin bundle feels wrong. This skill is for diagnosis plus the shortest correct remediation path.
|
|
11
|
-
|
|
12
|
-
## Workflow
|
|
13
|
-
|
|
14
|
-
1. Run the primary health surface:
|
|
15
|
-
- MCP: `operator_doctor`
|
|
16
|
-
- CLI fallback: `enact-operator doctor`
|
|
17
|
-
2. If the problem is plugin-source-related, inspect:
|
|
18
|
-
- MCP: `operator_plugin_list` / `operator_plugin_validate`
|
|
19
|
-
- CLI fallback: `enact-operator plugins validate`
|
|
20
|
-
3. If the problem is hook-related, inspect:
|
|
21
|
-
- MCP: `operator_hooks_status`
|
|
22
|
-
- CLI fallback: `enact-operator hooks status`
|
|
23
|
-
4. If the problem is session or team-runtime-related, inspect:
|
|
24
|
-
- `operator_session_status`
|
|
25
|
-
- `operator_team_status`
|
|
26
|
-
- `operator_hud`
|
|
27
|
-
5. Turn findings into concrete fixes, not generic advice.
|
|
28
|
-
|
|
29
|
-
## What to Check
|
|
30
|
-
|
|
31
|
-
- Node and Codex availability
|
|
32
|
-
- MCP server configured in `~/.codex/config.toml`
|
|
33
|
-
- `.enact/operator/` initialized in the current repo
|
|
34
|
-
- tmux availability vs degraded mock mode
|
|
35
|
-
- source plugin bundle validity; host install and marketplace drift are owned by enact-extensions
|
|
36
|
-
- hook installation state vs feature availability
|
|
37
|
-
- session, inbox, review, and task drift
|
|
38
|
-
|
|
39
|
-
## Output Standard
|
|
40
|
-
|
|
41
|
-
- what is healthy
|
|
42
|
-
- what is degraded
|
|
43
|
-
- what is broken
|
|
44
|
-
- the exact command or file change to fix each issue
|
|
45
|
-
|
|
46
|
-
## Activation
|
|
47
|
-
|
|
48
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: hud
|
|
3
|
-
description: "Runtime-truth mode for reading tasks, sessions, reviews, inbox, and team state before acting."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# HUD
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$hud` before trusting your memory of what the runtime is doing. The HUD is the fastest way to catch task drift, stale executor state, or fake progress.
|
|
11
|
-
|
|
12
|
-
## Primary Surfaces
|
|
13
|
-
|
|
14
|
-
- MCP: `operator_hud`
|
|
15
|
-
- CLI fallback: `enact-operator hud`
|
|
16
|
-
|
|
17
|
-
## Read It For
|
|
18
|
-
|
|
19
|
-
- current session and branch
|
|
20
|
-
- active modes
|
|
21
|
-
- queued vs active vs review tasks
|
|
22
|
-
- inbox and review pressure
|
|
23
|
-
- team backend state and stale executors
|
|
24
|
-
- install-registry drift
|
|
25
|
-
- doctor warnings that change operator decisions
|
|
26
|
-
- if `operator_*` tools are not visible yet, load/search the Enact Operator MCP namespace before reading runtime state
|
|
27
|
-
|
|
28
|
-
## Workflow
|
|
29
|
-
|
|
30
|
-
1. Read the HUD.
|
|
31
|
-
2. If anything looks wrong, drill down with:
|
|
32
|
-
- `operator_session_status`
|
|
33
|
-
- `operator_task_list`
|
|
34
|
-
- `operator_reviews_list`
|
|
35
|
-
- `operator_inbox_list`
|
|
36
|
-
- `operator_team_status`
|
|
37
|
-
- `operator_ledger_recent`
|
|
38
|
-
3. Compare it against the actual `.enact/operator/` artifacts if needed.
|
|
39
|
-
4. Fix state drift before continuing execution.
|
|
40
|
-
|
|
41
|
-
## Rules
|
|
42
|
-
|
|
43
|
-
- if the HUD says a mode is active, there must be durable evidence
|
|
44
|
-
- if the HUD says the team is healthy but inbox or reviews are piling up, the runtime is not healthy
|
|
45
|
-
- prefer MCP state tools when another agent needs machine-readable output
|
|
46
|
-
|
|
47
|
-
## Activation
|
|
48
|
-
|
|
49
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: hyperplan
|
|
3
|
-
description: "Three-round adversarial planning debate that hands a distilled bundle to $plan instead of writing the final plan directly."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Hyperplan
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$hyperplan` when a plan needs adversarial pressure before execution starts.
|
|
11
|
-
|
|
12
|
-
## Debate Team
|
|
13
|
-
|
|
14
|
-
Use exactly this 4-agent team:
|
|
15
|
-
|
|
16
|
-
- `critic`
|
|
17
|
-
- `critic`
|
|
18
|
-
- `architect`
|
|
19
|
-
- `explore`
|
|
20
|
-
|
|
21
|
-
The original openagent placeholder names are not used here.
|
|
22
|
-
|
|
23
|
-
## Rounds
|
|
24
|
-
|
|
25
|
-
Run exactly 3 rounds:
|
|
26
|
-
|
|
27
|
-
1. independent analysis
|
|
28
|
-
2. cross-attack
|
|
29
|
-
3. defend, refine, or concede
|
|
30
|
-
|
|
31
|
-
Persist each round under:
|
|
32
|
-
|
|
33
|
-
- `.enact/operator/hyperplan/<sessionId>/round-1.md`
|
|
34
|
-
- `.enact/operator/hyperplan/<sessionId>/round-2.md`
|
|
35
|
-
- `.enact/operator/hyperplan/<sessionId>/round-3.md`
|
|
36
|
-
|
|
37
|
-
## Handoff Rule
|
|
38
|
-
|
|
39
|
-
The lead agent does not write the final implementation plan directly.
|
|
40
|
-
After round 3, hand the distilled debate bundle to a separate `$plan` invocation.
|
|
41
|
-
|
|
42
|
-
## Execution Notes
|
|
43
|
-
|
|
44
|
-
- use `explore` to gather the evidence bundle before critique
|
|
45
|
-
- use the two `critic` agents to take opposing positions in the cross-attack round
|
|
46
|
-
- use `architect` to synthesize the final structured verdict and tradeoffs
|
|
47
|
-
- do not skip a round because the first opinion looked sufficient
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: plan
|
|
3
|
-
description: "Execution-plan mode that turns intent into small, verifiable slices backed by durable .enact/operator artifacts."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Plan
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$plan` to create execution-ready slices. The output is not a strategy memo. It is the prompt-quality plan that downstream execution can follow without improvising core behavior.
|
|
11
|
-
|
|
12
|
-
## Use When
|
|
13
|
-
|
|
14
|
-
- the work is bigger than a one-shot edit
|
|
15
|
-
- the request is clear enough to plan but not yet safe to execute
|
|
16
|
-
- verification, dependencies, or sequencing need to be locked in
|
|
17
|
-
|
|
18
|
-
## Do Not Use When
|
|
19
|
-
|
|
20
|
-
- the task is still ambiguous enough for `$deep-interview`
|
|
21
|
-
- the change is a trivial single-file fix
|
|
22
|
-
- the user explicitly wants direct execution and the risk is low
|
|
23
|
-
|
|
24
|
-
## Execution Policy
|
|
25
|
-
|
|
26
|
-
- gather repo facts before asking about internals
|
|
27
|
-
- plans are prompts for execution, not prose for humans only
|
|
28
|
-
- every slice must fit in one focused context window
|
|
29
|
-
- every slice must have explicit verification
|
|
30
|
-
- prefer a small number of high-quality slices over a long TODO dump
|
|
31
|
-
|
|
32
|
-
## Plan Anatomy
|
|
33
|
-
|
|
34
|
-
Each slice should answer:
|
|
35
|
-
|
|
36
|
-
- what files are likely to change
|
|
37
|
-
- what the slice must do
|
|
38
|
-
- how to verify it
|
|
39
|
-
- what counts as done
|
|
40
|
-
- what it depends on
|
|
41
|
-
|
|
42
|
-
## Workflow
|
|
43
|
-
|
|
44
|
-
1. Read current intent artifacts:
|
|
45
|
-
- `.enact/operator/plans/*-requirements.md`
|
|
46
|
-
- `.enact/operator/plans/brownfield-map.md`
|
|
47
|
-
- `.enact/operator/research/summary.md`
|
|
48
|
-
2. Derive the must-haves from the goal backward:
|
|
49
|
-
- what must be true when this is done?
|
|
50
|
-
- what artifacts and connections are required for those truths?
|
|
51
|
-
3. Split the work into waves and slices:
|
|
52
|
-
- interface or contracts first
|
|
53
|
-
- implementation second
|
|
54
|
-
- verification and wiring last
|
|
55
|
-
4. Write or refine:
|
|
56
|
-
- active phase plan
|
|
57
|
-
- verification map
|
|
58
|
-
- any required task queue items
|
|
59
|
-
5. If Ultrawork is active, link the plan id into session state:
|
|
60
|
-
- MCP: `operator_ultrawork_link_plan`
|
|
61
|
-
- CLI fallback: `enact-operator ultrawork link-plan <planId>`
|
|
62
|
-
|
|
63
|
-
## Quality Bar
|
|
64
|
-
|
|
65
|
-
- no vague acceptance criteria
|
|
66
|
-
- no "make it work" tasks
|
|
67
|
-
- no giant slice that hides three subsystems
|
|
68
|
-
- no verify step that depends on hope
|
|
69
|
-
|
|
70
|
-
## Deliverables
|
|
71
|
-
|
|
72
|
-
- `.enact/operator/plans/<phase>.md`
|
|
73
|
-
- `.enact/operator/plans/<phase>-verification.md`
|
|
74
|
-
- updated brownfield map or research summary when needed
|
|
75
|
-
|
|
76
|
-
## Activation
|
|
77
|
-
|
|
78
|
-
When a prompt contains `$enact-operator:<skill-name>` or `$<skill-name>`, Operator's UserPromptSubmit hook records the invocation in `.enact/operator/state/skill-active.json` and adds an MCP-first context note for the agent. That note tells the agent to load/search the Enact Operator MCP namespace immediately if `operator_*` tools are not visible yet, then prefer `operator_*` tools over the `enact-operator` CLI. This skill is operator-driven — there is no durable workflow state to start automatically. The activation log gives operators and the HUD a trace of which skills were explicitly invoked.
|