@amsterdamdatalabs/enact-extensions 0.1.0 → 0.1.3

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 (245) hide show
  1. package/README.md +96 -21
  2. package/dist/index.d.ts +5 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/install.d.ts +171 -1
  7. package/dist/install.d.ts.map +1 -1
  8. package/dist/install.js +402 -49
  9. package/dist/install.js.map +1 -1
  10. package/dist/internal/codex.d.ts.map +1 -1
  11. package/dist/internal/codex.js +7 -1
  12. package/dist/internal/codex.js.map +1 -1
  13. package/dist/internal/platform.d.ts +8 -0
  14. package/dist/internal/platform.d.ts.map +1 -1
  15. package/dist/internal/platform.js +46 -2
  16. package/dist/internal/platform.js.map +1 -1
  17. package/dist/provision.d.ts +30 -0
  18. package/dist/provision.d.ts.map +1 -0
  19. package/dist/provision.js +202 -0
  20. package/dist/provision.js.map +1 -0
  21. package/dist/validate/index.d.ts +44 -0
  22. package/dist/validate/index.d.ts.map +1 -1
  23. package/dist/validate/index.js +157 -0
  24. package/dist/validate/index.js.map +1 -1
  25. package/extensions/cmux/.agents/plugin.json +37 -0
  26. package/extensions/cmux/skills/cmux/SKILL.md +82 -0
  27. package/extensions/cmux/skills/cmux/agents/openai.yaml +4 -0
  28. package/extensions/cmux/skills/cmux/references/handles-and-identify.md +35 -0
  29. package/extensions/cmux/skills/cmux/references/panes-surfaces.md +37 -0
  30. package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +23 -0
  31. package/extensions/cmux/skills/cmux/references/windows-workspaces.md +31 -0
  32. package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +122 -0
  33. package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +4 -0
  34. package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +66 -0
  35. package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +45 -0
  36. package/extensions/cmux/skills/cmux-workspace/SKILL.md +93 -0
  37. package/extensions/dev-state/.agents/plugin.json +35 -0
  38. package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +194 -0
  39. package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +4 -0
  40. package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +130 -0
  41. package/extensions/devops/.agents/plugin.json +36 -0
  42. package/extensions/devops/skills/azure-devops-cli/SKILL.md +431 -0
  43. package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +4 -0
  44. package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +217 -0
  45. package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +4 -0
  46. package/extensions/enact-context/.agents/plugin.json +40 -0
  47. package/extensions/enact-context/.mcp.json +8 -0
  48. package/extensions/enact-context/README.md +25 -0
  49. package/extensions/enact-context/assets/icon.png +0 -0
  50. package/extensions/enact-context/assets/logo.png +0 -0
  51. package/extensions/enact-context/hooks/hooks.json +115 -0
  52. package/extensions/enact-context/skills/enact-context/SKILL.md +149 -0
  53. package/extensions/enact-context/skills/enact-context/scripts/install.sh +69 -0
  54. package/extensions/enact-factory/.agents/plugin.json +42 -0
  55. package/extensions/enact-factory/.mcp.json +8 -0
  56. package/extensions/enact-factory/assets/icon.png +0 -0
  57. package/extensions/enact-factory/assets/logo.png +0 -0
  58. package/extensions/enact-factory/hooks/user-prompt-submit.mjs +67 -0
  59. package/extensions/enact-factory/skills/testing-strategy/SKILL.md +167 -0
  60. package/extensions/enact-factory/skills/workitem-triage/SKILL.md +22 -0
  61. package/extensions/enact-operator/.agents/plugin.json +57 -0
  62. package/extensions/enact-operator/.app.json +3 -0
  63. package/extensions/enact-operator/.mcp.json +10 -0
  64. package/extensions/enact-operator/_taxonomy.md +86 -0
  65. package/extensions/enact-operator/agents/README.md +5 -0
  66. package/extensions/enact-operator/agents/architect.toml +25 -0
  67. package/extensions/enact-operator/agents/code-reviewer.toml +24 -0
  68. package/extensions/enact-operator/agents/critic.toml +30 -0
  69. package/extensions/enact-operator/agents/executor.toml +24 -0
  70. package/extensions/enact-operator/agents/explore.toml +23 -0
  71. package/extensions/enact-operator/agents/planner.toml +24 -0
  72. package/extensions/enact-operator/agents/verifier.toml +24 -0
  73. package/extensions/enact-operator/assets/icon.png +0 -0
  74. package/extensions/enact-operator/assets/logo.png +0 -0
  75. package/extensions/enact-operator/commands/doctor.md +39 -0
  76. package/extensions/enact-operator/commands/setup.md +51 -0
  77. package/extensions/enact-operator/hooks/hooks.json +146 -0
  78. package/extensions/enact-operator/skills/_variants.md +44 -0
  79. package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +50 -0
  80. package/extensions/enact-operator/skills/analyze/SKILL.md +91 -0
  81. package/extensions/enact-operator/skills/ask/SKILL.md +47 -0
  82. package/extensions/enact-operator/skills/autopilot/SKILL.md +170 -0
  83. package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +79 -0
  84. package/extensions/enact-operator/skills/cancel/SKILL.md +99 -0
  85. package/extensions/enact-operator/skills/configure-notifications/SKILL.md +77 -0
  86. package/extensions/enact-operator/skills/deep-interview/SKILL.md +80 -0
  87. package/extensions/enact-operator/skills/doctor/SKILL.md +48 -0
  88. package/extensions/enact-operator/skills/hud/SKILL.md +49 -0
  89. package/extensions/enact-operator/skills/hyperplan/SKILL.md +47 -0
  90. package/extensions/enact-operator/skills/plan/SKILL.md +78 -0
  91. package/extensions/enact-operator/skills/ralph/SKILL.md +201 -0
  92. package/extensions/enact-operator/skills/ralph/gemini.md +18 -0
  93. package/extensions/enact-operator/skills/ralplan/SKILL.md +151 -0
  94. package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +45 -0
  95. package/extensions/enact-operator/skills/research/SKILL.md +74 -0
  96. package/extensions/enact-operator/skills/review/SKILL.md +58 -0
  97. package/extensions/enact-operator/skills/security-research/SKILL.md +54 -0
  98. package/extensions/enact-operator/skills/setup/SKILL.md +91 -0
  99. package/extensions/enact-operator/skills/setup/scripts/install.sh +50 -0
  100. package/extensions/enact-operator/skills/skill/SKILL.md +82 -0
  101. package/extensions/enact-operator/skills/tdd/SKILL.md +59 -0
  102. package/extensions/enact-operator/skills/team/SKILL.md +199 -0
  103. package/extensions/enact-operator/skills/trace/SKILL.md +41 -0
  104. package/extensions/enact-operator/skills/ultragoal/SKILL.md +99 -0
  105. package/extensions/enact-operator/skills/ultraqa/SKILL.md +113 -0
  106. package/extensions/enact-operator/skills/ultrawork/SKILL.md +145 -0
  107. package/extensions/enact-operator/skills/ultrawork/planner.md +28 -0
  108. package/extensions/enact-operator/skills/wiki/SKILL.md +41 -0
  109. package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +51 -0
  110. package/extensions/enact-wiki/.agents/plugin.json +42 -0
  111. package/extensions/enact-wiki/.mcp.json +15 -0
  112. package/extensions/enact-wiki/README.md +44 -0
  113. package/extensions/enact-wiki/assets/icon.png +0 -0
  114. package/extensions/enact-wiki/assets/logo.png +0 -0
  115. package/extensions/enact-wiki/skills/document-parser/SKILL.md +17 -0
  116. package/extensions/enact-wiki/skills/document-parser/scripts/parse.sh +60 -0
  117. package/extensions/enact-wiki/skills/document-parser/skill.json +9 -0
  118. package/extensions/enact-wiki/skills/enact-wiki/SKILL.md +30 -0
  119. package/extensions/enact-wiki/skills/enact-wiki/references/ingest.md +62 -0
  120. package/extensions/enact-wiki/skills/enact-wiki/references/manage.md +34 -0
  121. package/extensions/enact-wiki/skills/enact-wiki/references/query.md +59 -0
  122. package/extensions/enact-wiki/skills/search-lab/SKILL.md +57 -0
  123. package/extensions/enact-wiki/skills/search-lab/scripts/analyze.ts +23 -0
  124. package/{plugins/net-revenue-management/.codex-plugin → extensions/net-revenue-management/.agents}/plugin.json +10 -6
  125. package/extensions/plugin-dev/.agents/plugin.json +42 -0
  126. package/extensions/plugin-dev/.mcp.json +3 -0
  127. package/extensions/plugin-dev/agents/agent-creator.md +199 -0
  128. package/extensions/plugin-dev/agents/plugin-validator.md +91 -0
  129. package/extensions/plugin-dev/agents/skill-reviewer.md +212 -0
  130. package/extensions/plugin-dev/commands/_archive/create-marketplace.md +427 -0
  131. package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +12 -0
  132. package/extensions/plugin-dev/commands/create-plugin.md +498 -0
  133. package/extensions/plugin-dev/commands/start.md +81 -0
  134. package/extensions/plugin-dev/hooks/hooks.json +3 -0
  135. package/extensions/plugin-dev/skills/agent-development/SKILL.md +641 -0
  136. package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +250 -0
  137. package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +461 -0
  138. package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +246 -0
  139. package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +216 -0
  140. package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +226 -0
  141. package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +464 -0
  142. package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +474 -0
  143. package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +176 -0
  144. package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +227 -0
  145. package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +227 -0
  146. package/extensions/plugin-dev/skills/command-development/SKILL.md +763 -0
  147. package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +612 -0
  148. package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +527 -0
  149. package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +762 -0
  150. package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +769 -0
  151. package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +508 -0
  152. package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +966 -0
  153. package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +943 -0
  154. package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +637 -0
  155. package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +191 -0
  156. package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +447 -0
  157. package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +723 -0
  158. package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +234 -0
  159. package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +160 -0
  160. package/extensions/plugin-dev/skills/hook-development/SKILL.md +861 -0
  161. package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +55 -0
  162. package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +57 -0
  163. package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +48 -0
  164. package/extensions/plugin-dev/skills/hook-development/references/advanced.md +871 -0
  165. package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +145 -0
  166. package/extensions/plugin-dev/skills/hook-development/references/migration.md +392 -0
  167. package/extensions/plugin-dev/skills/hook-development/references/patterns.md +430 -0
  168. package/extensions/plugin-dev/skills/hook-development/scripts/README.md +181 -0
  169. package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +153 -0
  170. package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +276 -0
  171. package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
  172. package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +775 -0
  173. package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +20 -0
  174. package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +19 -0
  175. package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +38 -0
  176. package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +26 -0
  177. package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +601 -0
  178. package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +190 -0
  179. package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +572 -0
  180. package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +623 -0
  181. package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +222 -0
  182. package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +705 -0
  183. package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +774 -0
  184. package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +83 -0
  185. package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +611 -0
  186. package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +289 -0
  187. package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +592 -0
  188. package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +233 -0
  189. package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +193 -0
  190. package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +625 -0
  191. package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +116 -0
  192. package/extensions/plugin-dev/skills/skill-development/SKILL.md +564 -0
  193. package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +465 -0
  194. package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +167 -0
  195. package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +111 -0
  196. package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +225 -0
  197. package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +39 -0
  198. package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +379 -0
  199. package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +210 -0
  200. package/package.json +8 -11
  201. package/scripts/enact-extensions.mjs +823 -21
  202. package/scripts/hooks/session-start-drift-check.mjs +58 -0
  203. package/scripts/lib/build-index.mjs +50 -0
  204. package/scripts/lib/bundle-hash.mjs +137 -0
  205. package/scripts/lib/hooks.mjs +741 -0
  206. package/scripts/lib/ledger.mjs +163 -0
  207. package/scripts/lib/list-bundles.mjs +70 -0
  208. package/scripts/lib/outdated.mjs +144 -0
  209. package/scripts/lib/provision-mcp.mjs +16 -0
  210. package/scripts/lib/resolve-bundle.mjs +121 -0
  211. package/scripts/lib/run-install.mjs +402 -38
  212. package/scripts/lib/run-prune.mjs +73 -0
  213. package/scripts/lib/run-sync.mjs +9 -1
  214. package/scripts/lib/run-uninstall.mjs +244 -0
  215. package/scripts/lib/run-update.mjs +152 -0
  216. package/scripts/lib/run-validate.mjs +21 -18
  217. package/scripts/lib/serve.mjs +472 -0
  218. package/scripts/postinstall.mjs +63 -0
  219. package/scripts/setup-enact-context.sh +2 -2
  220. package/scripts/version-bump.sh +463 -0
  221. package/spec/codex.json +1 -11
  222. package/spec/index.json +59 -0
  223. package/web/assets/README.md +111 -0
  224. package/web/assets/logo-full.png +0 -0
  225. package/web/assets/logo-slim.png +0 -0
  226. package/web/assets/tokens/base.css +45 -0
  227. package/web/assets/tokens/colors.css +248 -0
  228. package/web/assets/tokens/effects.css +24 -0
  229. package/web/assets/tokens/fonts.css +8 -0
  230. package/web/assets/tokens/index.css +18 -0
  231. package/web/assets/tokens/spacing.css +50 -0
  232. package/web/index.html +1188 -0
  233. package/.agents/plugins/marketplace.json +0 -20
  234. package/catalog/enact-context.json +0 -9
  235. package/catalog/enact-factory.json +0 -7
  236. package/catalog/enact-operator.json +0 -7
  237. package/catalog/enact-wiki.json +0 -7
  238. package/catalog/net-revenue-management.json +0 -8
  239. package/scripts/rename-supervisor-to-operator.pl +0 -66
  240. package/scripts/sync-manifests.mjs +0 -23
  241. package/scripts/validate-catalog.mjs +0 -37
  242. package/scripts/validate-plugin.mjs +0 -10
  243. /package/{plugins → extensions}/net-revenue-management/.mcp.json +0 -0
  244. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -0
  245. /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -0
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: remove-deadcode
3
+ description: "LSP-verified symbol deletion with entry-point guards and candidate-parallel execution."
4
+ ---
5
+
6
+ # Remove Deadcode
7
+
8
+ ## Purpose
9
+
10
+ Use `$remove-deadcode` to remove provably unused code symbols without damaging runtime entry points.
11
+
12
+ ## Preconditions
13
+
14
+ - collect candidate symbols before any deletion
15
+ - load optional entry-point guard list from `.enact/operator/remove-deadcode/entry-points.txt`
16
+
17
+ ## Required Safety Contract
18
+
19
+ For each candidate symbol, the deletion gate is strict:
20
+
21
+ 1. If symbol is listed in the entry-point guard file, skip deletion unconditionally.
22
+ 2. Otherwise call `lsp_find_references` (via enact-context).
23
+ 3. If references are non-empty, abort deletion for that symbol and emit an explanatory message.
24
+ 4. Only delete when references are exactly zero and the symbol is not guarded.
25
+
26
+ ## Execution Model
27
+
28
+ - batching is explicit: enumerate all candidates first
29
+ - then dispatch parallel `executor` subagents, one candidate per subagent
30
+ - each subagent must apply the same guard-list and `lsp_find_references` checks
31
+
32
+ ## Behavioral Constraints
33
+
34
+ - no heuristic-only deletion
35
+ - no bypass of entry-point guard list
36
+ - no GitHub-specific assumptions or workflows in deletion decisions
37
+
38
+ ## Verification Expectations
39
+
40
+ - unit test: non-empty `lsp_find_references` result must refuse deletion
41
+ - unit test: guard-listed symbol must be skipped even when reference count is zero
42
+
43
+ ## Activation
44
+
45
+ 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.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: research
3
+ description: "Evidence-first research mode for current patterns, implementation risks, and decision support."
4
+ ---
5
+
6
+ # Research
7
+
8
+ ## Purpose
9
+
10
+ Use `$research` when the correct implementation depends on facts you do not yet have, either from the repo or from current external sources.
11
+
12
+ ## Execution Policy
13
+
14
+ - start with brownfield evidence from the repo
15
+ - use primary sources for technical questions
16
+ - end with a decision-ready recommendation, not a wall of notes
17
+ - persist findings so the next pass does not repeat the work
18
+
19
+ ## Workflow
20
+
21
+ 1. Identify the actual unknowns.
22
+ 2. Separate:
23
+ - repo truth
24
+ - external truth
25
+ - assumptions
26
+ 3. Gather only the evidence needed to decide.
27
+ 4. Write the result into `.enact/operator/research/summary.md`.
28
+ 5. Update any linked ultrawork or task state if the research is part of an active execution lane.
29
+
30
+ ## Parallel Sweep
31
+
32
+ Run concurrent research agents for independent evidence lanes. The floor is 2 concurrent agents whenever there are both repo-truth and external-truth unknowns.
33
+
34
+ - minimum concurrent-agent floor: 2
35
+ - recommended split: one agent for internal repo evidence and one agent for external primary sources
36
+ - increase concurrency only when unknowns are independent and synthesis cost remains manageable
37
+
38
+ Anti-stop rule: do not stop at the first result. Continue each lane until at least one corroborating source is collected per lane, or until an explicit blocker is documented.
39
+
40
+ ## Runtime Clarification
41
+
42
+ - `$research` is an evidence pass, not a currently exposed closure-owning
43
+ runtime lane.
44
+ - If research output is being used to support closure on a live task, rely
45
+ on the real Operator proof surfaces rather than treating research notes as
46
+ equivalent to parity evidence:
47
+ - `operator_contract_parity_run`
48
+ - `operator_workflow_reconcile`
49
+ - `operator_operator_snapshot`
50
+
51
+ ## Deliverables
52
+
53
+ - current pattern or contract summary
54
+ - risk list
55
+ - recommendation with concrete tradeoffs
56
+ - open questions that still block planning or execution
57
+
58
+ ### Internal Evidence
59
+
60
+ - repo paths inspected
61
+ - commands or tools used
62
+ - concrete findings tied to files, code, or runtime state
63
+ - unresolved internal gaps
64
+
65
+ ### External Evidence
66
+
67
+ - primary sources consulted
68
+ - dated facts and version-sensitive constraints
69
+ - corroboration across at least one additional source
70
+ - unresolved external gaps
71
+
72
+ ## Activation
73
+
74
+ 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.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: review
3
+ description: "Findings-first pre-landing review against code, plan completion, verification evidence, and durable runtime state."
4
+ ---
5
+
6
+ # Review
7
+
8
+ ## Purpose
9
+
10
+ Use `$review` to answer one question: is this actually ready to land? Review is not a summary pass. It is a bug, regression, coverage, and state-integrity pass.
11
+
12
+ ## Execution Policy
13
+
14
+ - findings first, summary second
15
+ - prefer evidence over author claims
16
+ - check the code, the tests, the plan, and the runtime artifacts
17
+ - if the current context authored the change, prefer a separate reviewer role for approval
18
+
19
+ ## Review Order
20
+
21
+ 1. Read the changed code.
22
+ 2. Read the active plan and verification map.
23
+ 3. Check what was supposed to happen vs what actually landed.
24
+ 4. Verify:
25
+ - tests and typechecks
26
+ - docs drift
27
+ - `.enact/operator/` state drift
28
+ - task, review, inbox, and ledger accuracy
29
+ 5. Produce a verdict:
30
+ - approved
31
+ - changes requested
32
+ - blocked
33
+
34
+ ## Mandatory Checks
35
+
36
+ - missing or fake verification
37
+ - uncovered changed paths
38
+ - stale docs or setup instructions
39
+ - task marked done but still pending review evidence
40
+ - runtime claiming health while inbox or review queue says otherwise
41
+
42
+ ## Recommended State Reads
43
+
44
+ - `operator_reviews_list`
45
+ - `operator_inbox_list`
46
+ - `operator_ledger_recent`
47
+ - `operator_hud`
48
+
49
+ ## Output Standard
50
+
51
+ - findings ordered by severity
52
+ - file references and why they matter
53
+ - residual risk
54
+ - final verdict and next action
55
+
56
+ ## Activation
57
+
58
+ 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.
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: security-research
3
+ description: "Multi-agent security research with hunter/PoC split and optional critical bug auto-creation in Azure DevOps."
4
+ ---
5
+
6
+ # Security Research
7
+
8
+ ## Purpose
9
+
10
+ Use `$security-research` to run a focused vulnerability hunt, produce ranked findings, and optionally create Azure DevOps Bug work items for critical issues.
11
+
12
+ ## Parameters
13
+
14
+ - `autoCreateBugs: boolean` (default `true`)
15
+ - when `false`, no `factory_workitem_sync_once` call is allowed regardless of severity
16
+
17
+ ## Team Topology
18
+
19
+ - 3 hunter agents:
20
+ - hunter 1: CWE classification
21
+ - hunter 2: CVSS v4 scoring
22
+ - hunter 3: OWASP category mapping
23
+ - 2 PoC engineer agents:
24
+ - PoC 1 and PoC 2: exploitability proof and reproduction quality
25
+
26
+ ## Required Workflow
27
+
28
+ 1. Launch hunters to identify and classify potential vulnerabilities.
29
+ 2. Launch PoC engineers on top-ranked findings to validate exploitability.
30
+ 3. Merge outputs into a single findings report.
31
+ 4. Write report to `.enact/operator/security/<sessionId>/findings.md`.
32
+ 5. Rank findings in the report by CVSS v4 severity.
33
+ 6. For each finding with CVSS v4 `>= 9.0`, if `autoCreateBugs=true`, call `factory_workitem_sync_once` to create a `Bug` work item.
34
+ 7. If `autoCreateBugs=false`, skip all bug auto-creation calls.
35
+
36
+ ## Azure DevOps-Only Contract
37
+
38
+ - use factory MCP work-item surfaces for bug creation
39
+ - no GitHub Security Advisories, GitHub issue creation, or GitHub-specific security automation assumptions
40
+
41
+ ## Behavioral Constraints
42
+
43
+ - CVSS scoring must be v4, not v3 fallback
44
+ - critical auto-bug creation threshold is fixed at `>= 9.0`
45
+ - findings must include at least one of: CWE, CVSS v4 vector/score, OWASP mapping
46
+
47
+ ## Verification Expectations
48
+
49
+ - integration test: findings report includes at least one CWE classification entry
50
+ - integration test: with `autoCreateBugs=false`, verify no `factory_workitem_sync_once` call is made
51
+
52
+ ## Activation
53
+
54
+ 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.
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: enact-operator-setup
3
+ description: "Initialize the Enact Operator control-plane: install the enact-operator CLI if needed, then install hooks and agents and verify the runtime is healthy."
4
+ ---
5
+
6
+ # Enact Operator Setup
7
+
8
+ ## Runtime Prerequisite
9
+
10
+ Before running the workflow, make sure the `enact-operator` CLI exists:
11
+
12
+ ```bash
13
+ which enact-operator || bash scripts/install.sh
14
+ ```
15
+
16
+ ## Purpose
17
+ Bootstraps a project to use Enact Operator by laying out the `.enact/operator/` directory tree and installing Operator hooks and agents. Plugin installation and host registry ownership belongs to enact-extensions.
18
+
19
+ ## Use When
20
+ - First-time installation of enact-operator in a project
21
+ - Reinstalling after a version bump or broken hook state
22
+ - Validating that an existing installation is coherent before running team or staged review workflows
23
+
24
+ ## Execution Policy
25
+
26
+ - start from the repo and `.enact/operator/` truth, not chat memory
27
+ - if `operator_*` tools are not visible yet, load/search the Enact Operator MCP namespace before running setup/readiness checks
28
+ - drive setup through MCP tools when running inside Codex; CLI commands are the equivalent operator surface
29
+ - keep state current as you go — confirm each step before advancing
30
+
31
+ ## Workflow
32
+ 1. Run the top-level installer:
33
+ - MCP: `operator_setup`
34
+ - CLI: `enact-operator setup`
35
+ 2. Install Claude Code hooks (pre/post tool hooks that integrate with the operator runtime):
36
+ - No MCP tool for hooks install — use CLI: `enact-operator hooks install`
37
+ 3. Check hook registration status:
38
+ - MCP: `operator_hooks_status`
39
+ - CLI: `enact-operator hooks status`
40
+ 4. Install the Core 7 Codex agent roster into the project:
41
+ - MCP: `operator_agents_pack_install`
42
+ - CLI: `enact-operator agents install-pack`
43
+ 5. Validate the plugin bundle source is coherent (skills, hooks, agents all present):
44
+ - MCP: `operator_plugin_validate`
45
+ - CLI: `enact-operator plugins validate`
46
+ 6. Check the install registry for operator-owned hooks and agents:
47
+ - MCP: `operator_install_registry`
48
+ - CLI: (no direct equivalent — use `operator_install_registry`)
49
+ 7. Run the doctor to confirm runtime health:
50
+ - MCP: `operator_doctor`
51
+ - CLI: `enact-operator doctor`
52
+ 8. Check replacement-readiness to confirm Operator is ready to take over provider roles:
53
+ - MCP: `operator_audit_replacement_readiness`
54
+ - CLI: `enact-operator audit replacement-readiness`
55
+
56
+ ## State Contract
57
+ - Reads: project root, existing `.claude/settings.json`, existing hook files
58
+ - Writes: `.enact/operator/` directory tree (`cache`, `jobs`, `logs`, `memory`, `plans`, `reports`, `research`, `sessions`, `state`, `team`, `ultragoal`, `metrics.json`), hook entries in `.claude/settings.json`
59
+
60
+ ## MCP Tools
61
+
62
+ - `operator_setup` — run the top-level installer
63
+ - `operator_hooks_status` — verify hook registration state
64
+ - `operator_agents_install` — install individual agent templates
65
+ - `operator_agents_pack_install` — install the full Core 7 Codex agent roster
66
+ - `operator_plugin_validate` — check plugin bundle source coherence
67
+ - `operator_install_registry` — read the install registry
68
+ - `operator_doctor` — confirm runtime health
69
+ - `operator_audit_replacement_readiness` — confirm Operator is ready to take over provider roles
70
+
71
+ Note: hooks install has no MCP equivalent — use `enact-operator hooks install` via CLI.
72
+
73
+ ## Commands
74
+ ```
75
+ enact-operator setup
76
+ enact-operator hooks install
77
+ enact-operator hooks status
78
+ enact-operator agents install-pack
79
+ enact-operator plugins validate
80
+ enact-operator doctor
81
+ enact-operator audit replacement-readiness
82
+ ```
83
+
84
+ ## Activation
85
+
86
+ 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.
87
+ ## Final Check
88
+ - `operator_doctor` (or `enact-operator doctor`) reports no errors
89
+ - `operator_plugin_validate` reports the enact-operator source bundle is valid
90
+ - `operator_hooks_status` shows all required hooks registered
91
+ - `.enact/operator/` directory exists with expected subdirectories
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ PACKAGE_NAME="@amsterdamdatalabs/enact-operator"
5
+ BIN_NAME="enact-operator"
6
+
7
+ already_installed() {
8
+ command -v "${BIN_NAME}" >/dev/null 2>&1
9
+ }
10
+
11
+ require_npm() {
12
+ if command -v npm >/dev/null 2>&1; then
13
+ return 0
14
+ fi
15
+
16
+ echo "ERROR: npm is required to install ${PACKAGE_NAME}." >&2
17
+ echo "Install Node.js + npm from https://nodejs.org/ and rerun this script." >&2
18
+ exit 1
19
+ }
20
+
21
+ install_cli() {
22
+ echo "Installing ${PACKAGE_NAME} via npm..."
23
+ npm install -g "${PACKAGE_NAME}"
24
+ }
25
+
26
+ main() {
27
+ if already_installed; then
28
+ local current
29
+ current="$(${BIN_NAME} --version 2>/dev/null | head -1 || echo 'unknown')"
30
+ echo "${BIN_NAME} already installed: ${current}"
31
+ echo "Run '${BIN_NAME} setup' in your repo to initialize Operator state."
32
+ exit 0
33
+ fi
34
+
35
+ require_npm
36
+ install_cli
37
+
38
+ if ! already_installed; then
39
+ echo "ERROR: ${BIN_NAME} was installed but is not on PATH." >&2
40
+ echo "Open a new shell or update your npm global bin PATH, then rerun '${BIN_NAME} --version'." >&2
41
+ exit 1
42
+ fi
43
+
44
+ local current
45
+ current="$(${BIN_NAME} --version 2>/dev/null | head -1 || echo 'unknown')"
46
+ echo "${BIN_NAME} installed: ${current}"
47
+ echo "Next step: run '${BIN_NAME} setup' in the target workspace."
48
+ }
49
+
50
+ main "$@"
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: skill
3
+ description: "Meta-skill: list, discover, and route to available Operator skills. Use when the operator wants to know what skills exist or which skill handles a given task."
4
+ ---
5
+
6
+ # Skill
7
+
8
+ ## Purpose
9
+ Provides a navigable index of all skills available in the enact-operator plugin. When the operator asks "what can Operator do?" or "which skill should I use for X?", this skill answers by listing the catalog and routing to the correct skill. It does not execute work itself.
10
+
11
+ ## Use When
12
+ - The operator wants to see all available Operator skills
13
+ - Choosing between skills for a given task type
14
+ - Checking whether a skill exists before invoking it
15
+ - Auditing the plugin's skill surface for completeness
16
+
17
+ ## Execution Policy
18
+
19
+ - start from the repo and `.enact/operator/` truth, not chat memory
20
+ - drive discovery through MCP tools when running inside Codex; CLI commands are the equivalent operator surface
21
+ - this skill is read-only — it writes nothing
22
+
23
+ ## Workflow
24
+ 1. List all source skills in the operator bundle:
25
+ - MCP: `operator_plugin_list`
26
+ - CLI: `ls enact-operator/extensions/skills/`
27
+
28
+ Plugin installation and host registry state are owned by enact-extensions.
29
+
30
+ 2. For a raw directory listing of skill names:
31
+ ```
32
+ ls enact-operator/extensions/skills/
33
+ ```
34
+
35
+ 3. To validate that all skill files are well-formed:
36
+ ```
37
+ enact-operator plugins validate
38
+ ```
39
+
40
+ 4. To read a specific skill's playbook, open its `SKILL.md` directly:
41
+ ```
42
+ enact-operator/extensions/skills/<skill-name>/SKILL.md
43
+ ```
44
+
45
+ 5. Route the operator to the correct skill based on their task:
46
+
47
+ | Task type | Skill |
48
+ |-----------|-------|
49
+ | First-time install or reinstall | `$setup` |
50
+ | Durable multi-executor implementation flow | `$team` |
51
+ | Single executor execution lane | `$executor` |
52
+ | Long-horizon multi-session goal | `$ultragoal` |
53
+ | QA cycling with hard-stop gates | `$ultraqa` |
54
+ | Remove TODO/placeholder noise | `$ai-slop-cleaner` |
55
+ | Read-only investigation | `$analyze` |
56
+ | Specific factual question | `$ask` |
57
+ | Research anchored to a goal | `$autoresearch-goal` |
58
+ | Stop all active modes | `$cancel` |
59
+ | Findings-first review | `$review` |
60
+ | Notification preferences | `$configure-notifications` |
61
+ | Wiki/reference lookup | `$wiki` |
62
+
63
+ ## State Contract
64
+ - Reads: `enact-operator/extensions/skills/` directory, `operator_plugin_list` output
65
+ - Writes: nothing
66
+
67
+ ## MCP Tools
68
+
69
+ - `operator_plugin_list` — list local operator plugin bundle sources
70
+
71
+ ## Commands
72
+ ```
73
+ enact-operator plugins validate
74
+ ```
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.
79
+ ## Final Check
80
+ - All skills listed in the routing table are present in `enact-operator/extensions/skills/`
81
+ - `enact-operator plugins validate` passes with no errors
82
+ - The operator was routed to a specific skill, not left with a general answer
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: tdd
3
+ description: "Red-green-refactor mode for behavior with clear inputs, outputs, and regression value."
4
+ ---
5
+
6
+ # TDD
7
+
8
+ ## Purpose
9
+
10
+ Use `$tdd` when behavior can be specified before implementation. TDD is for design pressure and regression safety, not for ritual.
11
+
12
+ ## Good TDD Candidates
13
+
14
+ - business rules
15
+ - API contracts
16
+ - parsing, formatting, or validation
17
+ - state transitions
18
+ - algorithms and utility behavior
19
+
20
+ ## Skip TDD For
21
+
22
+ - pure layout and styling work
23
+ - config-only changes
24
+ - trivial glue code
25
+ - exploratory prototypes where behavior is not yet known
26
+
27
+ ## Iron Law
28
+
29
+ No production code without a failing test first.
30
+
31
+ ## Cycle
32
+
33
+ 1. Red
34
+ - write the smallest failing test for the next behavior
35
+ - run it and prove it fails for the right reason
36
+ 2. Green
37
+ - write the minimum code to make it pass
38
+ - rerun the test and the relevant suite
39
+ 3. Refactor
40
+ - clean up only after green
41
+ - keep the suite green after every change
42
+
43
+ ## Rules
44
+
45
+ - one behavior per cycle
46
+ - do not batch multiple features into one red-green pass
47
+ - prefer regression tests for changed behavior
48
+ - record the verify command in the plan or task notes
49
+
50
+ ## Output Standard
51
+
52
+ - what behavior the test locked in
53
+ - the failing signal
54
+ - the minimal implementation
55
+ - the final verification command
56
+
57
+ ## Activation
58
+
59
+ 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.