@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,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ultraqa
|
|
3
|
-
description: "QA cycling workflow with hard-stop verification gates: tests, lint, doctor, smoke execution, and ralph persistence."
|
|
4
|
-
lane: true
|
|
5
|
-
mcpToolPrefix: operator_ultraqa_
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# UltraQA
|
|
9
|
-
|
|
10
|
-
## Purpose
|
|
11
|
-
Combines `$ralph` (self-referential verification loop) with an explicit set of QA gates. Each gate must pass before the loop advances. The cycle is: implement a fix, run all gates, advance only when green, repeat until every gate is clean in a single run.
|
|
12
|
-
|
|
13
|
-
## Use When
|
|
14
|
-
- Verification has failed and a structured fix-verify cycle is needed
|
|
15
|
-
- A feature must be proven working end-to-end before merging
|
|
16
|
-
- The operator needs a hard record of each verification pass and failure
|
|
17
|
-
|
|
18
|
-
## Execution Policy
|
|
19
|
-
|
|
20
|
-
- start from the repo and `.enact/operator/` truth, not chat memory
|
|
21
|
-
- drive the QA loop through MCP tools when running inside Codex; CLI commands are the equivalent operator surface
|
|
22
|
-
- keep ralph and review state current as you go
|
|
23
|
-
- do not stop until all gates pass in a single clean run
|
|
24
|
-
|
|
25
|
-
## Workflow
|
|
26
|
-
1. Start a ralph loop scoped to the QA goal:
|
|
27
|
-
- MCP: `operator_ralph_start` with `goal`
|
|
28
|
-
- CLI: `enact-operator ralph start --goal "<what must be verified>"`
|
|
29
|
-
2. Check current ralph status before each iteration:
|
|
30
|
-
- MCP: `operator_ralph_status`
|
|
31
|
-
- CLI: `enact-operator ralph status`
|
|
32
|
-
3. Run each QA gate in sequence. All must pass before advancing:
|
|
33
|
-
- Unit and integration tests (run the project's test command)
|
|
34
|
-
- Lint and type checks (run the project's lint command)
|
|
35
|
-
- Operator doctor:
|
|
36
|
-
- MCP: `operator_doctor`
|
|
37
|
-
- CLI: `enact-operator doctor`
|
|
38
|
-
- Replacement-readiness audit:
|
|
39
|
-
- MCP: `operator_audit_replacement_readiness`
|
|
40
|
-
- CLI: `enact-operator audit replacement-readiness`
|
|
41
|
-
- Real-execution smoke test (invoke the primary feature with real inputs, not mocks)
|
|
42
|
-
4. Check the HUD for a summary view of current mode state:
|
|
43
|
-
- MCP: `operator_hud`
|
|
44
|
-
- CLI: `enact-operator hud`
|
|
45
|
-
5. After all gates pass in a single run, record the verification:
|
|
46
|
-
- MCP: `operator_ralph_verify` with `gateId` and `status=passed`
|
|
47
|
-
- CLI: `enact-operator ralph verify <loopId> pass`
|
|
48
|
-
|
|
49
|
-
If any gate fails, record and continue the loop:
|
|
50
|
-
- MCP: `operator_ralph_verify` with `gateId` and `status=failed`
|
|
51
|
-
- CLI: `enact-operator ralph verify <loopId> fail`
|
|
52
|
-
6. Advance to the next iteration:
|
|
53
|
-
- MCP: `operator_ralph_advance` with `toPhase`
|
|
54
|
-
- CLI: `enact-operator ralph advance <loopId>`
|
|
55
|
-
7. If a team review is required before completing, request it:
|
|
56
|
-
- MCP: `operator_team_review`
|
|
57
|
-
8. When all gates have passed in a single clean run, complete the loop:
|
|
58
|
-
- MCP: `operator_ralph_complete` with `summary`
|
|
59
|
-
- CLI: `enact-operator ralph complete <loopId>`
|
|
60
|
-
|
|
61
|
-
## Proof Path
|
|
62
|
-
|
|
63
|
-
- Use the real `contract-parity` and `state-hygiene` surfaces when QA is part
|
|
64
|
-
of closure, not just doctor/tests:
|
|
65
|
-
- `operator_contract_parity_run`
|
|
66
|
-
- `operator_workflow_reconcile`
|
|
67
|
-
- `operator_operator_snapshot`
|
|
68
|
-
- Provider note: Operator may use its adapter over the running `enact-context`
|
|
69
|
-
server for closure proof. That is expected and preferable to duplicate
|
|
70
|
-
QA-local analysis.
|
|
71
|
-
|
|
72
|
-
## State Contract
|
|
73
|
-
- Reads: `.enact/operator/state/` (ralph loop state), test and lint output
|
|
74
|
-
- Writes: ralph loop iterations and verification records via MCP tools or CLI
|
|
75
|
-
|
|
76
|
-
## MCP Tools
|
|
77
|
-
|
|
78
|
-
- `operator_ralph_start` — start a ralph loop scoped to the QA goal
|
|
79
|
-
- `operator_ralph_status` — read current ralph state
|
|
80
|
-
- `operator_ralph_advance` — transition to the next phase
|
|
81
|
-
- `operator_ralph_verify` — record a gate verdict with evidence
|
|
82
|
-
- `operator_ralph_pause` — pause the active loop
|
|
83
|
-
- `operator_ralph_resume` — resume a paused loop
|
|
84
|
-
- `operator_ralph_complete` — close the loop after all gates pass
|
|
85
|
-
- `operator_ralph_abort` — abort the loop with a reason
|
|
86
|
-
- `operator_doctor` — run the operator doctor gate
|
|
87
|
-
- `operator_audit_replacement_readiness` — run the replacement-readiness gate
|
|
88
|
-
- `operator_hud` — summary view of active mode state
|
|
89
|
-
- `operator_team_review` — request a team review before completing
|
|
90
|
-
|
|
91
|
-
## Commands
|
|
92
|
-
```
|
|
93
|
-
enact-operator ralph start
|
|
94
|
-
enact-operator ralph status
|
|
95
|
-
enact-operator ralph verify <loopId> pass|fail
|
|
96
|
-
enact-operator ralph advance <loopId>
|
|
97
|
-
enact-operator ralph pause <loopId>
|
|
98
|
-
enact-operator ralph resume <loopId>
|
|
99
|
-
enact-operator ralph complete <loopId>
|
|
100
|
-
enact-operator ralph abort <loopId>
|
|
101
|
-
enact-operator doctor
|
|
102
|
-
enact-operator audit replacement-readiness
|
|
103
|
-
enact-operator hud
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Activation
|
|
107
|
-
|
|
108
|
-
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.
|
|
109
|
-
## Final Check
|
|
110
|
-
- Every gate (tests, lint, doctor, audit, smoke) passed in a single iteration
|
|
111
|
-
- `ralph verify` recorded as `pass` before `ralph complete` was called
|
|
112
|
-
- No gate was skipped or bypassed
|
|
113
|
-
- `ralph complete` was called; no loop left in `running` or `paused` state
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ultrawork
|
|
3
|
-
description: "Default Enact Operator flow for intent -> plan -> execute -> verify, with team escalation only when durable parallelism is justified."
|
|
4
|
-
lane: true
|
|
5
|
-
mcpToolPrefix: operator_ultrawork_
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Ultrawork
|
|
9
|
-
|
|
10
|
-
## Purpose
|
|
11
|
-
|
|
12
|
-
`$ultrawork` is the default Enact Operator operating mode. It is the wrapper that decides whether to clarify, plan, execute directly, or escalate to durable team mode. It exists to finish the job end to end without losing state.
|
|
13
|
-
|
|
14
|
-
## Use When
|
|
15
|
-
|
|
16
|
-
- the user wants the work shipped, not just discussed
|
|
17
|
-
- the task is larger than a one-shot edit
|
|
18
|
-
- you need one sane default path instead of choosing skills manually
|
|
19
|
-
|
|
20
|
-
## Routing Rules
|
|
21
|
-
|
|
22
|
-
- ambiguous intent -> `$deep-interview`
|
|
23
|
-
- clear but broad work -> `$plan`
|
|
24
|
-
- one focused slice with known files -> `$executor`
|
|
25
|
-
- parallel durable work -> `$team`
|
|
26
|
-
- uncertain implementation pattern -> `$research` or `$trace`
|
|
27
|
-
|
|
28
|
-
## Intent Gate
|
|
29
|
-
|
|
30
|
-
Before the lane moves past startup, classify the session into one of:
|
|
31
|
-
|
|
32
|
-
- `research` -> `$trace`
|
|
33
|
-
- `implementation` -> `executor`
|
|
34
|
-
- `investigation` -> `explore`
|
|
35
|
-
- `evaluation` -> `code-reviewer`
|
|
36
|
-
- `fix` -> `executor`
|
|
37
|
-
- `open-ended` -> `$plan`
|
|
38
|
-
|
|
39
|
-
Record the chosen `intent` in ultrawork state and keep later verification aligned to that class.
|
|
40
|
-
|
|
41
|
-
## Execution Policy
|
|
42
|
-
|
|
43
|
-
- start from the repo and `.enact/operator/` truth, not chat memory
|
|
44
|
-
- if `operator_*` tools are not visible yet, load/search the Enact Operator MCP namespace before doing ultrawork lifecycle actions
|
|
45
|
-
- prefer the smallest mode that can finish the job
|
|
46
|
-
- keep session, ultrawork, task, inbox, and review state current as you go
|
|
47
|
-
- when no external `taskId` is linked, local Operator task discipline is mandatory; ultrawork owns a local task and must keep it authoritative
|
|
48
|
-
- do not stop at a partial handoff unless the next owner is explicit
|
|
49
|
-
|
|
50
|
-
## Workflow
|
|
51
|
-
|
|
52
|
-
1. Start or refresh the session record:
|
|
53
|
-
- MCP: `operator_session_start`
|
|
54
|
-
- CLI fallback: `enact-operator session start`
|
|
55
|
-
2. Read current runtime truth:
|
|
56
|
-
- MCP: `operator_hud`
|
|
57
|
-
- CLI fallback: `enact-operator hud`
|
|
58
|
-
3. Start or inspect ultrawork state:
|
|
59
|
-
- MCP: `operator_ultrawork_start`
|
|
60
|
-
- CLI fallback: `enact-operator ultrawork start "<intent>"`
|
|
61
|
-
4. Run the ambiguity gate:
|
|
62
|
-
- if intent is fuzzy, use `$deep-interview`
|
|
63
|
-
- if intent is clear, continue
|
|
64
|
-
5. Build or refresh the durable plan:
|
|
65
|
-
- update `.enact/operator/plans/` and `.enact/operator/research/`
|
|
66
|
-
- link plan or research ids with `operator_ultrawork_link_plan` and `operator_ultrawork_link_research`
|
|
67
|
-
6. Choose execution mode:
|
|
68
|
-
- direct slice -> `$executor`
|
|
69
|
-
- durable parallel slices -> `$team`
|
|
70
|
-
7. Keep state current during execution:
|
|
71
|
-
- `operator_ultrawork_route`
|
|
72
|
-
- `operator_ultrawork_advance`
|
|
73
|
-
- `operator_ultrawork_verify`
|
|
74
|
-
- review-phase flow:
|
|
75
|
-
- advance into review with `operator_ultrawork_advance` and `toPhase: "review"`
|
|
76
|
-
- read review queue with `operator_reviews_list`
|
|
77
|
-
- if review work blocks completion, capture it with `operator_ultrawork_block`
|
|
78
|
-
- `operator_task_list`
|
|
79
|
-
- `operator_inbox_list`
|
|
80
|
-
- `operator_reviews_list`
|
|
81
|
-
- `operator_contract_parity_run` when closure criteria are declared
|
|
82
|
-
- `operator_workflow_reconcile` / `operator_operator_snapshot` when state drift is suspected
|
|
83
|
-
8. Finish with explicit verification and a recorded verdict:
|
|
84
|
-
- MCP: `operator_ultrawork_complete`
|
|
85
|
-
- CLI fallback: `enact-operator ultrawork complete "<summary>"`
|
|
86
|
-
|
|
87
|
-
## State Contract
|
|
88
|
-
|
|
89
|
-
Ultrawork should leave behind:
|
|
90
|
-
|
|
91
|
-
- a current session
|
|
92
|
-
- a live or intentionally cleared ultrawork state
|
|
93
|
-
- durable local tasks with real status
|
|
94
|
-
- linked plan or research ids where relevant
|
|
95
|
-
- optional external `assignmentId` plus a `subagents` array (empty on fresh sessions; reserved for delegated subagent tracking when that lane writes into ultrawork state)
|
|
96
|
-
- verification evidence in state or artifacts
|
|
97
|
-
- explicit parity/hygiene evidence when the session is being treated as a
|
|
98
|
-
closure-bearing run
|
|
99
|
-
|
|
100
|
-
## TDD Mandate
|
|
101
|
-
|
|
102
|
-
Default sequence is RED -> GREEN -> SURFACE.
|
|
103
|
-
|
|
104
|
-
- RED: capture the failing proof first
|
|
105
|
-
- GREEN: implement the minimal correction
|
|
106
|
-
- SURFACE: record the user-visible verification evidence after the fix
|
|
107
|
-
|
|
108
|
-
Exemption whitelist is limited to:
|
|
109
|
-
|
|
110
|
-
- pure formatting
|
|
111
|
-
- comment-only edits
|
|
112
|
-
- dependency version bumps with no behavior delta
|
|
113
|
-
- rename-only moves
|
|
114
|
-
|
|
115
|
-
Every exemption must be justified in `.enact/operator/ultrawork/<sessionId>/notepad/decisions.md`.
|
|
116
|
-
|
|
117
|
-
## Activation
|
|
118
|
-
|
|
119
|
-
This skill is wired to Operator's UserPromptSubmit hook. When a prompt contains
|
|
120
|
-
an explicit marker like `$enact-operator:ultrawork "<goal>"` or `$ultrawork "<goal>"`
|
|
121
|
-
and the workspace-context hook preset is installed (verified via
|
|
122
|
-
`operator_hooks_status`), the hook automatically:
|
|
123
|
-
|
|
124
|
-
1. Detects the marker
|
|
125
|
-
2. Starts the durable state at `.enact/operator/state/ultrawork.json` before the agent reads its first turn of context
|
|
126
|
-
3. Adds an MCP-first context note telling the agent to load/search the Enact Operator MCP namespace immediately and continue through `operator_*` tools
|
|
127
|
-
4. Records the activation in `.enact/operator/state/skill-active.json`
|
|
128
|
-
|
|
129
|
-
That injected startup note is not AzDo-only. If no external `taskId` is linked, treat the local task as mandatory runtime state: read it through `operator_task_list` and keep it current throughout the run.
|
|
130
|
-
|
|
131
|
-
If hooks are not installed, OR the marker did not include a goal, OR you
|
|
132
|
-
want explicit control, call `operator_operator_activate` with `{skill: 'ultrawork',
|
|
133
|
-
goal: '<goal>'}` from the MCP tool surface. The result is idempotent — if
|
|
134
|
-
an ultrawork session is already active, the activation is a no-op.
|
|
135
|
-
|
|
136
|
-
## Final Check
|
|
137
|
-
|
|
138
|
-
- the next action is explicit
|
|
139
|
-
- no fake "done" state exists
|
|
140
|
-
- verification is recorded
|
|
141
|
-
- the work is either completed, in review, or intentionally blocked
|
|
142
|
-
- if closure criteria exist, `contract-parity` should be read from the real
|
|
143
|
-
gate output, not inferred manually
|
|
144
|
-
- provider note: using the running `enact-context` server through Operator's
|
|
145
|
-
adapter layer is the intended proof path, not duplicated local analysis
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
You are the planner. You DO NOT write code.
|
|
2
|
-
|
|
3
|
-
Produce structured ultrawork planning output, not prose.
|
|
4
|
-
|
|
5
|
-
Required content:
|
|
6
|
-
|
|
7
|
-
## Waves
|
|
8
|
-
|
|
9
|
-
List execution waves explicitly as `Wave 1`, `Wave 2`, ..., `Wave N`.
|
|
10
|
-
|
|
11
|
-
## Dependency Matrix
|
|
12
|
-
|
|
13
|
-
Use this exact dependency matrix table:
|
|
14
|
-
|
|
15
|
-
| Task | Depends On | Blocks | Can Parallelize With |
|
|
16
|
-
| --- | --- | --- | --- |
|
|
17
|
-
|
|
18
|
-
## Agent Dispatch
|
|
19
|
-
|
|
20
|
-
For every TODO include:
|
|
21
|
-
|
|
22
|
-
- `category`
|
|
23
|
-
- `skills`
|
|
24
|
-
- target agent or lane
|
|
25
|
-
|
|
26
|
-
## Parallel Speedup
|
|
27
|
-
|
|
28
|
-
Estimate the expected parallel speedup percentage for the proposed wave plan.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wiki
|
|
3
|
-
description: "Wiki-style reference lookup delegated to the enact-wiki provider. Use when the operator wants durable project documentation or knowledge retrieval."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Wiki
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
Provides access to the project's durable wiki and knowledge base by delegating to the enact-wiki provider. Operator orchestrates the request and receives the result; it does not re-implement wiki storage or retrieval. Operator-side artifacts produced by research or analysis can be persisted to the wiki via this skill.
|
|
10
|
-
|
|
11
|
-
## Use When
|
|
12
|
-
- The operator wants to look up a documented decision, design, or reference
|
|
13
|
-
- Research findings from `$autoresearch-goal` should be persisted as a durable wiki entry
|
|
14
|
-
- The operator asks "does the wiki have anything on X?"
|
|
15
|
-
|
|
16
|
-
## Workflow
|
|
17
|
-
1. Identify the query or document to persist.
|
|
18
|
-
2. Delegate the operation to the enact-wiki provider using its wiki MCP tools.
|
|
19
|
-
- For a lookup: invoke the enact-wiki wiki query tool with the search term.
|
|
20
|
-
- For a write: invoke the enact-wiki wiki add tool with the content and title.
|
|
21
|
-
- For a list: invoke the enact-wiki wiki list tool.
|
|
22
|
-
- For a read of a specific entry: invoke the enact-wiki wiki read tool with the entry identifier.
|
|
23
|
-
3. If the operation returns content, present it directly to the operator without reformatting.
|
|
24
|
-
4. If persisting a Operator research artifact (e.g., `.enact/operator/research/<goalId>.md`), read the file first, then pass the content to the enact-wiki wiki add tool.
|
|
25
|
-
5. Operator does not store wiki state locally. The enact-wiki provider is the canonical store.
|
|
26
|
-
|
|
27
|
-
## State Contract
|
|
28
|
-
- Reads: enact-wiki wiki store (via MCP tool calls), `.enact/operator/research/` files when persisting
|
|
29
|
-
- Writes: enact-wiki wiki store (via MCP tool calls); no local `.enact/operator/` files written by this skill
|
|
30
|
-
|
|
31
|
-
## Dependencies
|
|
32
|
-
- Requires enact-wiki MCP server to be connected. If it is not available, report that to the operator and stop.
|
|
33
|
-
|
|
34
|
-
## Activation
|
|
35
|
-
|
|
36
|
-
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.
|
|
37
|
-
## Final Check
|
|
38
|
-
- The query returned a result or a clear "not found" from enact-wiki
|
|
39
|
-
- For writes, the enact-wiki tool confirmed the entry was saved
|
|
40
|
-
- No wiki content was stored locally in `.enact/operator/` as a substitute for the enact-wiki store
|
|
41
|
-
- If enact-wiki was unavailable, the operator was notified explicitly
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: work-with-workitem
|
|
3
|
-
description: "Lightweight Azure DevOps work-item delivery lane: implement and hand off; factory owns tracking and closure."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Work With Workitem
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
Use `$work-with-workitem` for operator-domain delivery tied to a single Azure DevOps work item.
|
|
11
|
-
|
|
12
|
-
## Domain Boundary
|
|
13
|
-
|
|
14
|
-
- operator scope is intentionally lightweight: load, isolate, implement, PR, handoff, cleanup
|
|
15
|
-
- enact-factory owns CI heartbeat tracking, branch policy waits, auto-merge, and lifecycle advance to `Closed`
|
|
16
|
-
- this skill must not add CI polling loops or unbounded branch-policy waiting
|
|
17
|
-
|
|
18
|
-
## Azure DevOps-Only Contract
|
|
19
|
-
|
|
20
|
-
- use `factory_workitem_get` and `factory_assignment_record` for work-item reads and closing notes
|
|
21
|
-
- use `az repos pr create --work-items <id>` to link the PR to the work item
|
|
22
|
-
- do not assume or reference GitHub APIs, GitHub Actions, GitHub checks, or GitHub branch protection primitives
|
|
23
|
-
|
|
24
|
-
## Required Sequence
|
|
25
|
-
|
|
26
|
-
1. `factory_workitem_get` loads the target work item and confirms readiness.
|
|
27
|
-
2. `EnterWorktree` isolates the implementation workspace.
|
|
28
|
-
3. Execute implementation with `$ultrawork` (or `$ralph` for simple tasks).
|
|
29
|
-
4. Create atomic commits with clear work-item-linked intent.
|
|
30
|
-
5. Run `az repos pr create --work-items <id>` and capture the PR URL.
|
|
31
|
-
6. Call `factory_assignment_record` with a closing note that includes PR URL and commit SHA.
|
|
32
|
-
7. `ExitWorktree` cleans up the isolated workspace.
|
|
33
|
-
|
|
34
|
-
## Behavioral Constraints
|
|
35
|
-
|
|
36
|
-
- no CI poll loop in this skill; CI heartbeat belongs to `factory_watchdog_status`
|
|
37
|
-
- no merge waiting or policy-wait ownership in this skill
|
|
38
|
-
- no lifecycle mutation to `Closed` from this skill
|
|
39
|
-
- if PR creation fails, record failure context and exit through normal cleanup
|
|
40
|
-
|
|
41
|
-
## Verification Expectations
|
|
42
|
-
|
|
43
|
-
- integration target is a work item tagged `test-fixture`
|
|
44
|
-
- verify PR link uses `--work-items <id>`
|
|
45
|
-
- verify `factory_assignment_record` includes PR URL and commit SHA
|
|
46
|
-
- verify `ExitWorktree` cleanup is executed
|
|
47
|
-
- do not verify CI completion or merge here
|
|
48
|
-
|
|
49
|
-
## Activation
|
|
50
|
-
|
|
51
|
-
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.
|
|
File without changes
|
|
File without changes
|