@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.
- package/README.md +96 -21
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +171 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +402 -49
- package/dist/install.js.map +1 -1
- package/dist/internal/codex.d.ts.map +1 -1
- package/dist/internal/codex.js +7 -1
- package/dist/internal/codex.js.map +1 -1
- package/dist/internal/platform.d.ts +8 -0
- package/dist/internal/platform.d.ts.map +1 -1
- package/dist/internal/platform.js +46 -2
- package/dist/internal/platform.js.map +1 -1
- package/dist/provision.d.ts +30 -0
- package/dist/provision.d.ts.map +1 -0
- package/dist/provision.js +202 -0
- package/dist/provision.js.map +1 -0
- package/dist/validate/index.d.ts +44 -0
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +157 -0
- package/dist/validate/index.js.map +1 -1
- package/extensions/cmux/.agents/plugin.json +37 -0
- package/extensions/cmux/skills/cmux/SKILL.md +82 -0
- package/extensions/cmux/skills/cmux/agents/openai.yaml +4 -0
- package/extensions/cmux/skills/cmux/references/handles-and-identify.md +35 -0
- package/extensions/cmux/skills/cmux/references/panes-surfaces.md +37 -0
- package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +23 -0
- package/extensions/cmux/skills/cmux/references/windows-workspaces.md +31 -0
- package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +122 -0
- package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +4 -0
- package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +66 -0
- package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +45 -0
- package/extensions/cmux/skills/cmux-workspace/SKILL.md +93 -0
- package/extensions/dev-state/.agents/plugin.json +35 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +194 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +4 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +130 -0
- package/extensions/devops/.agents/plugin.json +36 -0
- package/extensions/devops/skills/azure-devops-cli/SKILL.md +431 -0
- package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +4 -0
- package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +217 -0
- package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +4 -0
- package/extensions/enact-context/.agents/plugin.json +40 -0
- package/extensions/enact-context/.mcp.json +8 -0
- package/extensions/enact-context/README.md +25 -0
- package/extensions/enact-context/assets/icon.png +0 -0
- package/extensions/enact-context/assets/logo.png +0 -0
- package/extensions/enact-context/hooks/hooks.json +115 -0
- package/extensions/enact-context/skills/enact-context/SKILL.md +149 -0
- package/extensions/enact-context/skills/enact-context/scripts/install.sh +69 -0
- package/extensions/enact-factory/.agents/plugin.json +42 -0
- package/extensions/enact-factory/.mcp.json +8 -0
- package/extensions/enact-factory/assets/icon.png +0 -0
- package/extensions/enact-factory/assets/logo.png +0 -0
- package/extensions/enact-factory/hooks/user-prompt-submit.mjs +67 -0
- package/extensions/enact-factory/skills/testing-strategy/SKILL.md +167 -0
- package/extensions/enact-factory/skills/workitem-triage/SKILL.md +22 -0
- package/extensions/enact-operator/.agents/plugin.json +57 -0
- package/extensions/enact-operator/.app.json +3 -0
- package/extensions/enact-operator/.mcp.json +10 -0
- package/extensions/enact-operator/_taxonomy.md +86 -0
- package/extensions/enact-operator/agents/README.md +5 -0
- package/extensions/enact-operator/agents/architect.toml +25 -0
- package/extensions/enact-operator/agents/code-reviewer.toml +24 -0
- package/extensions/enact-operator/agents/critic.toml +30 -0
- package/extensions/enact-operator/agents/executor.toml +24 -0
- package/extensions/enact-operator/agents/explore.toml +23 -0
- package/extensions/enact-operator/agents/planner.toml +24 -0
- package/extensions/enact-operator/agents/verifier.toml +24 -0
- package/extensions/enact-operator/assets/icon.png +0 -0
- package/extensions/enact-operator/assets/logo.png +0 -0
- package/extensions/enact-operator/commands/doctor.md +39 -0
- package/extensions/enact-operator/commands/setup.md +51 -0
- package/extensions/enact-operator/hooks/hooks.json +146 -0
- package/extensions/enact-operator/skills/_variants.md +44 -0
- package/extensions/enact-operator/skills/ai-slop-cleaner/SKILL.md +50 -0
- package/extensions/enact-operator/skills/analyze/SKILL.md +91 -0
- package/extensions/enact-operator/skills/ask/SKILL.md +47 -0
- package/extensions/enact-operator/skills/autopilot/SKILL.md +170 -0
- package/extensions/enact-operator/skills/autoresearch-goal/SKILL.md +79 -0
- package/extensions/enact-operator/skills/cancel/SKILL.md +99 -0
- package/extensions/enact-operator/skills/configure-notifications/SKILL.md +77 -0
- package/extensions/enact-operator/skills/deep-interview/SKILL.md +80 -0
- package/extensions/enact-operator/skills/doctor/SKILL.md +48 -0
- package/extensions/enact-operator/skills/hud/SKILL.md +49 -0
- package/extensions/enact-operator/skills/hyperplan/SKILL.md +47 -0
- package/extensions/enact-operator/skills/plan/SKILL.md +78 -0
- package/extensions/enact-operator/skills/ralph/SKILL.md +201 -0
- package/extensions/enact-operator/skills/ralph/gemini.md +18 -0
- package/extensions/enact-operator/skills/ralplan/SKILL.md +151 -0
- package/extensions/enact-operator/skills/remove-deadcode/SKILL.md +45 -0
- package/extensions/enact-operator/skills/research/SKILL.md +74 -0
- package/extensions/enact-operator/skills/review/SKILL.md +58 -0
- package/extensions/enact-operator/skills/security-research/SKILL.md +54 -0
- package/extensions/enact-operator/skills/setup/SKILL.md +91 -0
- package/extensions/enact-operator/skills/setup/scripts/install.sh +50 -0
- package/extensions/enact-operator/skills/skill/SKILL.md +82 -0
- package/extensions/enact-operator/skills/tdd/SKILL.md +59 -0
- package/extensions/enact-operator/skills/team/SKILL.md +199 -0
- package/extensions/enact-operator/skills/trace/SKILL.md +41 -0
- package/extensions/enact-operator/skills/ultragoal/SKILL.md +99 -0
- package/extensions/enact-operator/skills/ultraqa/SKILL.md +113 -0
- package/extensions/enact-operator/skills/ultrawork/SKILL.md +145 -0
- package/extensions/enact-operator/skills/ultrawork/planner.md +28 -0
- package/extensions/enact-operator/skills/wiki/SKILL.md +41 -0
- package/extensions/enact-operator/skills/work-with-workitem/SKILL.md +51 -0
- package/extensions/enact-wiki/.agents/plugin.json +42 -0
- package/extensions/enact-wiki/.mcp.json +15 -0
- package/extensions/enact-wiki/README.md +44 -0
- package/extensions/enact-wiki/assets/icon.png +0 -0
- package/extensions/enact-wiki/assets/logo.png +0 -0
- package/extensions/enact-wiki/skills/document-parser/SKILL.md +17 -0
- package/extensions/enact-wiki/skills/document-parser/scripts/parse.sh +60 -0
- package/extensions/enact-wiki/skills/document-parser/skill.json +9 -0
- package/extensions/enact-wiki/skills/enact-wiki/SKILL.md +30 -0
- package/extensions/enact-wiki/skills/enact-wiki/references/ingest.md +62 -0
- package/extensions/enact-wiki/skills/enact-wiki/references/manage.md +34 -0
- package/extensions/enact-wiki/skills/enact-wiki/references/query.md +59 -0
- package/extensions/enact-wiki/skills/search-lab/SKILL.md +57 -0
- package/extensions/enact-wiki/skills/search-lab/scripts/analyze.ts +23 -0
- package/{plugins/net-revenue-management/.codex-plugin → extensions/net-revenue-management/.agents}/plugin.json +10 -6
- package/extensions/plugin-dev/.agents/plugin.json +42 -0
- package/extensions/plugin-dev/.mcp.json +3 -0
- package/extensions/plugin-dev/agents/agent-creator.md +199 -0
- package/extensions/plugin-dev/agents/plugin-validator.md +91 -0
- package/extensions/plugin-dev/agents/skill-reviewer.md +212 -0
- package/extensions/plugin-dev/commands/_archive/create-marketplace.md +427 -0
- package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +12 -0
- package/extensions/plugin-dev/commands/create-plugin.md +498 -0
- package/extensions/plugin-dev/commands/start.md +81 -0
- package/extensions/plugin-dev/hooks/hooks.json +3 -0
- package/extensions/plugin-dev/skills/agent-development/SKILL.md +641 -0
- package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +250 -0
- package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +461 -0
- package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +246 -0
- package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +216 -0
- package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +226 -0
- package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +464 -0
- package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +474 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +176 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +227 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +227 -0
- package/extensions/plugin-dev/skills/command-development/SKILL.md +763 -0
- package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +612 -0
- package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +527 -0
- package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +762 -0
- package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +769 -0
- package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +508 -0
- package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +966 -0
- package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +943 -0
- package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +637 -0
- package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +191 -0
- package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +447 -0
- package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +723 -0
- package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +234 -0
- package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +160 -0
- package/extensions/plugin-dev/skills/hook-development/SKILL.md +861 -0
- package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +55 -0
- package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +57 -0
- package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +48 -0
- package/extensions/plugin-dev/skills/hook-development/references/advanced.md +871 -0
- package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +145 -0
- package/extensions/plugin-dev/skills/hook-development/references/migration.md +392 -0
- package/extensions/plugin-dev/skills/hook-development/references/patterns.md +430 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/README.md +181 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +153 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +276 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
- package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +775 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +20 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +19 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +38 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +26 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +601 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +190 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +572 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +623 -0
- package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +222 -0
- package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +705 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +774 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +83 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +611 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +289 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +592 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +233 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +193 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +625 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +116 -0
- package/extensions/plugin-dev/skills/skill-development/SKILL.md +564 -0
- package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +465 -0
- package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +167 -0
- package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +111 -0
- package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +225 -0
- package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +39 -0
- package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +379 -0
- package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +210 -0
- package/package.json +8 -11
- package/scripts/enact-extensions.mjs +823 -21
- package/scripts/hooks/session-start-drift-check.mjs +58 -0
- package/scripts/lib/build-index.mjs +50 -0
- package/scripts/lib/bundle-hash.mjs +137 -0
- package/scripts/lib/hooks.mjs +741 -0
- package/scripts/lib/ledger.mjs +163 -0
- package/scripts/lib/list-bundles.mjs +70 -0
- package/scripts/lib/outdated.mjs +144 -0
- package/scripts/lib/provision-mcp.mjs +16 -0
- package/scripts/lib/resolve-bundle.mjs +121 -0
- package/scripts/lib/run-install.mjs +402 -38
- package/scripts/lib/run-prune.mjs +73 -0
- package/scripts/lib/run-sync.mjs +9 -1
- package/scripts/lib/run-uninstall.mjs +244 -0
- package/scripts/lib/run-update.mjs +152 -0
- package/scripts/lib/run-validate.mjs +21 -18
- package/scripts/lib/serve.mjs +472 -0
- package/scripts/postinstall.mjs +63 -0
- package/scripts/setup-enact-context.sh +2 -2
- package/scripts/version-bump.sh +463 -0
- package/spec/codex.json +1 -11
- package/spec/index.json +59 -0
- package/web/assets/README.md +111 -0
- package/web/assets/logo-full.png +0 -0
- package/web/assets/logo-slim.png +0 -0
- package/web/assets/tokens/base.css +45 -0
- package/web/assets/tokens/colors.css +248 -0
- package/web/assets/tokens/effects.css +24 -0
- package/web/assets/tokens/fonts.css +8 -0
- package/web/assets/tokens/index.css +18 -0
- package/web/assets/tokens/spacing.css +50 -0
- package/web/index.html +1188 -0
- package/.agents/plugins/marketplace.json +0 -20
- package/catalog/enact-context.json +0 -9
- package/catalog/enact-factory.json +0 -7
- package/catalog/enact-operator.json +0 -7
- package/catalog/enact-wiki.json +0 -7
- package/catalog/net-revenue-management.json +0 -8
- package/scripts/rename-supervisor-to-operator.pl +0 -66
- package/scripts/sync-manifests.mjs +0 -23
- package/scripts/validate-catalog.mjs +0 -37
- package/scripts/validate-plugin.mjs +0 -10
- /package/{plugins → extensions}/net-revenue-management/.mcp.json +0 -0
- /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -0
- /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.
|