@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.
Files changed (148) hide show
  1. package/README.md +11 -12
  2. package/dist/create/enact.js +1 -1
  3. package/dist/create/enact.js.map +1 -1
  4. package/dist/create/index.d.ts +4 -3
  5. package/dist/create/index.d.ts.map +1 -1
  6. package/dist/create/index.js +9 -2
  7. package/dist/create/index.js.map +1 -1
  8. package/dist/index.d.ts +8 -6
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +4 -3
  11. package/dist/index.js.map +1 -1
  12. package/dist/install.d.ts +5 -0
  13. package/dist/install.d.ts.map +1 -1
  14. package/dist/install.js +10 -3
  15. package/dist/install.js.map +1 -1
  16. package/dist/internal/agents.d.ts +6 -1
  17. package/dist/internal/agents.d.ts.map +1 -1
  18. package/dist/internal/agents.js +8 -4
  19. package/dist/internal/agents.js.map +1 -1
  20. package/dist/internal/claude.d.ts +24 -0
  21. package/dist/internal/claude.d.ts.map +1 -1
  22. package/dist/internal/claude.js +99 -0
  23. package/dist/internal/claude.js.map +1 -1
  24. package/dist/internal/platform.d.ts +3 -1
  25. package/dist/internal/platform.d.ts.map +1 -1
  26. package/dist/internal/platform.js +7 -1
  27. package/dist/internal/platform.js.map +1 -1
  28. package/dist/internal/types.d.ts +2 -1
  29. package/dist/internal/types.d.ts.map +1 -1
  30. package/dist/principles.d.ts +28 -0
  31. package/dist/principles.d.ts.map +1 -0
  32. package/dist/principles.js +159 -0
  33. package/dist/principles.js.map +1 -0
  34. package/extensions/dev-state/.agents/plugin.json +2 -1
  35. package/extensions/enact-context/.agents/plugin.json +2 -1
  36. package/extensions/enact-context/hooks/hooks.json +0 -10
  37. package/extensions/enact-context/skills/enact-context/SKILL.md +14 -12
  38. package/extensions/enact-context/skills/enact-context/scripts/install.sh +7 -7
  39. package/extensions/enact-core/.agents/plugin.json +2 -1
  40. package/extensions/enact-core/OPERATING-PRINCIPLES.md +7 -0
  41. package/extensions/enact-core/hooks/hooks.json +12 -0
  42. package/extensions/enact-evolve/.agents/plugin.json +47 -0
  43. package/extensions/enact-evolve/agents/evolve-session-analyst.toml +37 -0
  44. package/extensions/enact-evolve/skills/session-analysis/SKILL.md +98 -0
  45. package/extensions/enact-evolve/skills/session-analysis/scripts/run-evolve-analysis.sh +343 -0
  46. package/extensions/enact-factory/.agents/plugin.json +2 -2
  47. package/extensions/enact-factory/agents/architect.toml +9 -5
  48. package/extensions/enact-factory/agents/code-reviewer.toml +9 -5
  49. package/extensions/enact-factory/agents/critic.toml +9 -5
  50. package/extensions/enact-factory/agents/executor.toml +4 -1
  51. package/extensions/enact-factory/agents/explore.toml +4 -1
  52. package/extensions/enact-factory/agents/planner.toml +4 -1
  53. package/extensions/enact-factory/agents/verifier.toml +9 -5
  54. package/extensions/enact-factory/skills/advisor/SKILL.md +82 -0
  55. package/extensions/enact-factory/skills/ai-slop-cleaner/SKILL.md +6 -1
  56. package/extensions/enact-factory/skills/autonomous-runner/SKILL.md +347 -0
  57. package/extensions/enact-factory/skills/azdo-ci-strategy/SKILL.md +42 -15
  58. package/extensions/enact-factory/skills/committee/SKILL.md +80 -0
  59. package/extensions/enact-factory/skills/deep-interview/SKILL.md +9 -13
  60. package/extensions/enact-factory/skills/drive-loop/SKILL.md +161 -31
  61. package/extensions/enact-factory/skills/drive-loop/references/contract-schema.md +26 -6
  62. package/extensions/enact-factory/skills/handoff/SKILL.md +72 -0
  63. package/extensions/enact-factory/skills/hyperplan/SKILL.md +11 -3
  64. package/extensions/enact-factory/skills/looplan/SKILL.md +34 -17
  65. package/extensions/enact-factory/skills/plan/SKILL.md +40 -8
  66. package/extensions/enact-factory/skills/remove-deadcode/SKILL.md +6 -1
  67. package/extensions/enact-factory/skills/research/SKILL.md +14 -4
  68. package/extensions/enact-factory/skills/review/SKILL.md +21 -2
  69. package/extensions/enact-factory/skills/security-research/SKILL.md +5 -2
  70. package/extensions/enact-factory/skills/tdd/SKILL.md +7 -1
  71. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +5 -0
  72. package/extensions/enact-factory/skills/trace/SKILL.md +5 -0
  73. package/extensions/enact-factory/skills/ultraqa/SKILL.md +21 -15
  74. package/extensions/enact-factory/skills/work-with-workitem/SKILL.md +5 -0
  75. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +5 -0
  76. package/extensions/enact-loop/.agents/plugin.json +5 -4
  77. package/extensions/enact-loop/scripts/validate.mjs +123 -0
  78. package/extensions/enact-loop/skills/enact-loop/SKILL.md +189 -30
  79. package/extensions/enact-wiki/.agents/plugin.json +2 -1
  80. package/extensions/net-revenue-management/.agents/plugin.json +2 -1
  81. package/extensions/plugin-dev/.agents/plugin.json +2 -1
  82. package/extensions/plugin-dev/skills/start/SKILL.md +3 -3
  83. package/package.json +1 -1
  84. package/scripts/check-hooks.mjs +5 -5
  85. package/scripts/check-principles.mjs +19 -4
  86. package/scripts/enact-extensions.mjs +237 -90
  87. package/scripts/lib/hooks.mjs +61 -217
  88. package/scripts/lib/migrate-artifacts.mjs +144 -0
  89. package/scripts/lib/principles.mjs +109 -0
  90. package/scripts/lib/provision-mcp.mjs +1 -1
  91. package/scripts/lib/run-install.mjs +72 -2
  92. package/scripts/lib/run-prune.mjs +23 -2
  93. package/scripts/lib/run-sync.mjs +4 -1
  94. package/scripts/postinstall.mjs +6 -6
  95. package/scripts/setup-enact-context.sh +20 -15
  96. package/scripts/version-bump.sh +22 -1
  97. package/spec/codex.json +5 -0
  98. package/spec/enact.json +3 -3
  99. package/spec/enact.md +1 -4
  100. package/spec/index.json +1 -1
  101. package/extensions/enact-factory/hooks/hooks.json +0 -14
  102. package/extensions/enact-operator/.agents/plugin.json +0 -56
  103. package/extensions/enact-operator/.app.json +0 -3
  104. package/extensions/enact-operator/.mcp.json +0 -10
  105. package/extensions/enact-operator/_taxonomy.md +0 -86
  106. package/extensions/enact-operator/agents/README.md +0 -5
  107. package/extensions/enact-operator/agents/architect.toml +0 -25
  108. package/extensions/enact-operator/agents/code-reviewer.toml +0 -24
  109. package/extensions/enact-operator/agents/critic.toml +0 -30
  110. package/extensions/enact-operator/agents/executor.toml +0 -24
  111. package/extensions/enact-operator/agents/explore.toml +0 -23
  112. package/extensions/enact-operator/agents/planner.toml +0 -24
  113. package/extensions/enact-operator/agents/verifier.toml +0 -24
  114. package/extensions/enact-operator/docs/skill-variants.md +0 -44
  115. package/extensions/enact-operator/hooks/hooks.json +0 -91
  116. package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +0 -50
  117. package/extensions/enact-operator/skills/analyze/SKILL.md +0 -91
  118. package/extensions/enact-operator/skills/ask/SKILL.md +0 -47
  119. package/extensions/enact-operator/skills/autopilot/SKILL.md +0 -170
  120. package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +0 -79
  121. package/extensions/enact-operator/skills/cancel/SKILL.md +0 -99
  122. package/extensions/enact-operator/skills/configure-notifications/SKILL.md +0 -77
  123. package/extensions/enact-operator/skills/deep-interview/SKILL.md +0 -80
  124. package/extensions/enact-operator/skills/doctor/SKILL.md +0 -48
  125. package/extensions/enact-operator/skills/hud/SKILL.md +0 -49
  126. package/extensions/enact-operator/skills/hyperplan/SKILL.md +0 -47
  127. package/extensions/enact-operator/skills/plan/SKILL.md +0 -78
  128. package/extensions/enact-operator/skills/ralph/SKILL.md +0 -201
  129. package/extensions/enact-operator/skills/ralph/gemini.md +0 -18
  130. package/extensions/enact-operator/skills/ralplan/SKILL.md +0 -151
  131. package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +0 -45
  132. package/extensions/enact-operator/skills/research/SKILL.md +0 -74
  133. package/extensions/enact-operator/skills/review/SKILL.md +0 -58
  134. package/extensions/enact-operator/skills/security-research/SKILL.md +0 -54
  135. package/extensions/enact-operator/skills/setup/SKILL.md +0 -91
  136. package/extensions/enact-operator/skills/setup/scripts/install.sh +0 -50
  137. package/extensions/enact-operator/skills/skill/SKILL.md +0 -82
  138. package/extensions/enact-operator/skills/tdd/SKILL.md +0 -59
  139. package/extensions/enact-operator/skills/team/SKILL.md +0 -199
  140. package/extensions/enact-operator/skills/trace/SKILL.md +0 -41
  141. package/extensions/enact-operator/skills/ultragoal/SKILL.md +0 -99
  142. package/extensions/enact-operator/skills/ultraqa/SKILL.md +0 -113
  143. package/extensions/enact-operator/skills/ultrawork/SKILL.md +0 -145
  144. package/extensions/enact-operator/skills/ultrawork/planner.md +0 -28
  145. package/extensions/enact-operator/skills/wiki/SKILL.md +0 -41
  146. package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +0 -51
  147. /package/extensions/{enact-operator → enact-evolve}/assets/icon.png +0 -0
  148. /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.