@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
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
WORKSPACE_REF="${CMUX_MONITOR_WORKSPACE:-workspace:1}"
|
|
5
|
+
SURFACE_REF="${CMUX_MONITOR_SURFACE:-surface:2}"
|
|
6
|
+
RELAY_WORKSPACE_REF="${CMUX_MONITOR_RELAY_WORKSPACE:-workspace:1}"
|
|
7
|
+
RELAY_SURFACE_REF="${CMUX_MONITOR_RELAY_SURFACE:-surface:1}"
|
|
8
|
+
LINES="${CMUX_MONITOR_LINES:-180}"
|
|
9
|
+
LOG_FILE="${CMUX_MONITOR_LOG:-/tmp/codex_vm_monitor.log}"
|
|
10
|
+
LOCAL_WAKE_MESSAGE_TEMPLATE="${CMUX_MONITOR_WAKE_MESSAGE:-[VM monitor __TIMESTAMP__] 30-minute check. Use exact cmux commands against __WORKSPACE__/__SURFACE__: 1) cmux capture-pane --workspace __WORKSPACE__ --surface __SURFACE__ --lines 120 2) cmux send --workspace __WORKSPACE__ --surface __SURFACE__ \"Status check from the local monitor. In exactly 8 lines, summarize: current phase, current file or slice, last completed step, last red proof, last green proof, blocker if any, next exact action, and whether OVERNIGHT_MERGE_STATUS.md is updated.\" 3) cmux send-key --workspace __WORKSPACE__ --surface __SURFACE__ Enter 4) cmux capture-pane --workspace __WORKSPACE__ --surface __SURFACE__ --lines 120 Then decide nothing | steer | stop.}"
|
|
11
|
+
|
|
12
|
+
timestamp() {
|
|
13
|
+
date -u +"%Y-%m-%dT%H:%M:%SZ"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
capture() {
|
|
17
|
+
cmux capture-pane --workspace "$WORKSPACE_REF" --surface "$SURFACE_REF" --lines "$LINES"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
relay_local() {
|
|
21
|
+
local message="$1"
|
|
22
|
+
cmux send --workspace "$RELAY_WORKSPACE_REF" --surface "$RELAY_SURFACE_REF" "$message"
|
|
23
|
+
cmux send-key --workspace "$RELAY_WORKSPACE_REF" --surface "$RELAY_SURFACE_REF" tab
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
snapshot="$(capture 2>&1 || true)"
|
|
27
|
+
|
|
28
|
+
{
|
|
29
|
+
printf '=== %s ===\n' "$(timestamp)"
|
|
30
|
+
printf 'workspace=%s surface=%s\n' "$WORKSPACE_REF" "$SURFACE_REF"
|
|
31
|
+
printf '%s\n' "$snapshot"
|
|
32
|
+
printf '\n'
|
|
33
|
+
} >> "$LOG_FILE"
|
|
34
|
+
|
|
35
|
+
if grep -q "Error: not_found\\|ERROR: Surface not found" <<<"$snapshot"; then
|
|
36
|
+
printf '[%s] monitor: surface missing\n' "$(timestamp)" >> "$LOG_FILE"
|
|
37
|
+
relay_local "[VM monitor $(timestamp)] surface missing for $WORKSPACE_REF/$SURFACE_REF"
|
|
38
|
+
exit 0
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
wake_message="${LOCAL_WAKE_MESSAGE_TEMPLATE/__TIMESTAMP__/$(timestamp)}"
|
|
42
|
+
wake_message="${wake_message//__WORKSPACE__/$WORKSPACE_REF}"
|
|
43
|
+
wake_message="${wake_message//__SURFACE__/$SURFACE_REF}"
|
|
44
|
+
printf '[%s] monitor: local wake injected; vm pane captured only\n' "$(timestamp)" >> "$LOG_FILE"
|
|
45
|
+
relay_local "$wake_message"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cmux-workspace
|
|
3
|
+
description: This skill should be used when work should stay inside the current cmux workspace and terminal, including workspace-scoped pane or surface inspection, non-disruptive terminal automation, and sibling-surface coordination messages.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# cmux Workspace
|
|
7
|
+
Use this skill when work should stay scoped to the caller's cmux workspace and surface.
|
|
8
|
+
|
|
9
|
+
## Default Rule
|
|
10
|
+
Scope actions to the current caller workspace unless the user explicitly names another workspace, tab, or window.
|
|
11
|
+
|
|
12
|
+
Start by resolving the live caller context:
|
|
13
|
+
```bash
|
|
14
|
+
printf 'workspace=%s\nsurface=%s\nsocket=%s\n' \
|
|
15
|
+
"${CMUX_WORKSPACE_ID:-}" \
|
|
16
|
+
"${CMUX_SURFACE_ID:-}" \
|
|
17
|
+
"${CMUX_SOCKET_PATH:-}"
|
|
18
|
+
cmux identify --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
If the env vars are empty, use `cmux identify --json` and be explicit that you are falling back to the currently focused cmux context.
|
|
22
|
+
|
|
23
|
+
## Non-Disruptive Automation
|
|
24
|
+
Never change visible focus unless the user explicitly asked for it.
|
|
25
|
+
|
|
26
|
+
Do not call these speculatively:
|
|
27
|
+
- `cmux select-workspace`
|
|
28
|
+
- `cmux focus-pane`
|
|
29
|
+
- `cmux focus-panel`
|
|
30
|
+
|
|
31
|
+
Prefer explicit `--workspace` and `--surface` flags for mutating actions.
|
|
32
|
+
|
|
33
|
+
## Messaging Pattern
|
|
34
|
+
For sibling-surface coordination, the default submission pattern is:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
cmux send --workspace workspace:N --surface surface:N "<message>"
|
|
38
|
+
cmux send-key --workspace workspace:N --surface surface:N Enter
|
|
39
|
+
cmux capture-pane --workspace workspace:N --surface surface:N --lines 120
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Rules:
|
|
43
|
+
- Use `cmux send` plus `cmux send-key Enter` as the default pattern.
|
|
44
|
+
- Always verify delivery with `cmux capture-pane`; do not trust `OK` from `cmux send` alone.
|
|
45
|
+
- If the pane is busy, expect the message to remain queued in the composer. Report that exact state instead of claiming the message was accepted.
|
|
46
|
+
- Only interrupt a busy pane if the user explicitly wants immediate submission.
|
|
47
|
+
|
|
48
|
+
## Coordination Prefixes
|
|
49
|
+
When you send a coordination message yourself, prefix it so direction is obvious:
|
|
50
|
+
|
|
51
|
+
- `[sidecar -> enact-agent-config]`
|
|
52
|
+
- `[enact-agent-config -> sidecar]`
|
|
53
|
+
|
|
54
|
+
Rules:
|
|
55
|
+
- Prefix only the coordination messages you send or relay.
|
|
56
|
+
- Do not assume the user's own plain-text messages already carry a prefix.
|
|
57
|
+
- Keep coordination updates short and operational: owner, current status, blocker, next step.
|
|
58
|
+
|
|
59
|
+
## Caller Terminal
|
|
60
|
+
Treat the caller surface as the safest anchor for relative operations:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
cmux send --surface "${CMUX_SURFACE_ID:-}" "git status"
|
|
64
|
+
cmux send-key --surface "${CMUX_SURFACE_ID:-}" Enter
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Inspect Workspace State
|
|
68
|
+
Useful inspection commands:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
cmux identify --json
|
|
72
|
+
cmux list-workspaces --json
|
|
73
|
+
cmux list-panes --workspace "${CMUX_WORKSPACE_ID:-}" --json
|
|
74
|
+
cmux list-pane-surfaces --workspace "${CMUX_WORKSPACE_ID:-}" --json
|
|
75
|
+
cmux capture-pane --workspace "${CMUX_WORKSPACE_ID:-}" --surface "${CMUX_SURFACE_ID:-}" --lines 120
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Right-Side Helper Policy
|
|
79
|
+
When auxiliary work is needed in the caller workspace:
|
|
80
|
+
- reuse an existing non-caller helper pane if one already exists
|
|
81
|
+
- otherwise create exactly one helper pane to the right
|
|
82
|
+
- avoid creating extra splits when a new surface in the helper pane is enough
|
|
83
|
+
|
|
84
|
+
Example:
|
|
85
|
+
```bash
|
|
86
|
+
cmux new-pane --workspace "${CMUX_WORKSPACE_ID:-}" --type terminal --direction right --focus false
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Stop Conditions
|
|
90
|
+
Stop and report instead of guessing when:
|
|
91
|
+
- the target workspace or surface cannot be identified confidently
|
|
92
|
+
- the pane stays busy and the message remains queued
|
|
93
|
+
- a command would require focus-changing behavior the user did not request
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dev-state",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Dev-state lifecycle skills for Enact: graduating development_state plans into durable documentation.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Amsterdam Data Labs"
|
|
7
|
+
},
|
|
8
|
+
"license": "UNLICENSED",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"dev-state",
|
|
11
|
+
"plans",
|
|
12
|
+
"lifecycle",
|
|
13
|
+
"documentation"
|
|
14
|
+
],
|
|
15
|
+
"targets": [
|
|
16
|
+
"claude",
|
|
17
|
+
"codex",
|
|
18
|
+
"cursor"
|
|
19
|
+
],
|
|
20
|
+
"skills": "./skills/",
|
|
21
|
+
"interface": {
|
|
22
|
+
"displayName": "Dev State",
|
|
23
|
+
"shortDescription": "Graduate development_state plans into durable docs.",
|
|
24
|
+
"developerName": "Amsterdam Data Labs",
|
|
25
|
+
"category": "Developer Tools",
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"plan graduation",
|
|
28
|
+
"dev-state lifecycle"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"factory": {
|
|
32
|
+
"firstParty": true,
|
|
33
|
+
"operatorScope": "global"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dev-state-plan-graduation
|
|
3
|
+
description: >-
|
|
4
|
+
Graduates completed work from 07-plans/active/ into durable 02-architecture/
|
|
5
|
+
and 04-contracts/ docs, archives done plans under 07-plans/archive/{component}/,
|
|
6
|
+
updates CHANGELOG.md and DOCS-MAP.md, and uses `ctx_knowledge` to recall prior
|
|
7
|
+
graduation context and record completions. Use when cleaning the development
|
|
8
|
+
pipeline, closing a plan, archiving completed slices, syncing architecture
|
|
9
|
+
docs, or when the user mentions plan migration, docs cleanup, archive, or
|
|
10
|
+
graduation alongside architecture documentation.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Development state — plan graduation (enact-docs)
|
|
14
|
+
|
|
15
|
+
Keeps **`07-plans/active/`** for **active** work only. Done outcomes
|
|
16
|
+
live in **`02-architecture/`** and **`04-contracts/`** (normative), then land in
|
|
17
|
+
**`07-plans/archive/{component}/`**.
|
|
18
|
+
|
|
19
|
+
## Directory layout
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
enact-docs/
|
|
23
|
+
├── 02-architecture/{component}/ # Normative architecture — authoritative
|
|
24
|
+
├── 04-contracts/{component}/ # Contracts, target configs — authoritative
|
|
25
|
+
├── 05-operations/{component}/ # Runbooks, ops guides
|
|
26
|
+
├── 06-decisions/ # ADRs
|
|
27
|
+
├── 07-plans/
|
|
28
|
+
│ ├── active/ # Active + proposed plans (status in frontmatter)
|
|
29
|
+
│ └── archive/{component}/ # Historical — not authoritative
|
|
30
|
+
├── CHANGELOG.md
|
|
31
|
+
├── DOCS-MAP.md
|
|
32
|
+
└── GLOSSARY.md
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Components: `factory`, `memory`, `context`, `runtime`, `watchdog`, `gateway`,
|
|
36
|
+
`mission-control`, `proc-tap`, `omx`.
|
|
37
|
+
|
|
38
|
+
## When to apply
|
|
39
|
+
|
|
40
|
+
- A plan in `07-plans/active/` is fully implemented and tests pass.
|
|
41
|
+
- User wants architecture docs updated to reflect shipped behavior.
|
|
42
|
+
- User says "archive", "graduate", "move plan to archive", or "cleanup plans".
|
|
43
|
+
- At the end of a session where multiple slices were shipped.
|
|
44
|
+
|
|
45
|
+
## Knowledge recall first
|
|
46
|
+
|
|
47
|
+
**Before doing anything**, use `ctx_knowledge` to recall prior context:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
ctx_knowledge(action="search", query="plan graduation {component}")
|
|
51
|
+
ctx_knowledge(action="recall", key="graduation:{component}")
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
If you find prior graduation records, use them to avoid re-processing already-archived plans.
|
|
55
|
+
|
|
56
|
+
**After graduation**, record the completion:
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
ctx_knowledge(action="remember", key="graduation:{component}:{date}", value="archived:07-plans/archive/{component}/{plan-file};normative:{architecture-doc-path}")
|
|
60
|
+
ctx_knowledge(action="remember", key="graduation:{component}:summary", value="Graduated {N} plans; updated {paths}")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Operating principles
|
|
64
|
+
|
|
65
|
+
1. **Architecture + contracts describe what IS.** Plans describe what was scheduled; after graduation the durable truth is `02-architecture/` + `04-contracts/` + CHANGELOG, not plan files.
|
|
66
|
+
2. **Archive is not authoritative.** `07-plans/archive/` is historical. Never cite archive paths as spec — always point to `02-architecture/` or `04-contracts/`.
|
|
67
|
+
3. **No silent loss.** Every moved plan must have a normative doc that captures its durable facts.
|
|
68
|
+
4. **Architecture-first gate.** A plan cannot leave active until its durable facts are reflected in `02-architecture/{component}/` and/or `04-contracts/{component}/`. If no architecture delta is needed, record an explicit "no architecture delta" rationale in CHANGELOG.
|
|
69
|
+
5. **Component subfolders.** Always archive under `07-plans/archive/{component}/` — not at the archive root.
|
|
70
|
+
|
|
71
|
+
## Workflow
|
|
72
|
+
|
|
73
|
+
### 1) Recall + inventory
|
|
74
|
+
|
|
75
|
+
1. Run `ctx_knowledge` search/recall for prior graduation context (see above).
|
|
76
|
+
2. List `07-plans/active/` — read each plan's frontmatter `status` field.
|
|
77
|
+
3. For each plan assign:
|
|
78
|
+
- **Primary topic** (vocabulary cleanup, scheduler, closure contracts, DB migration, …)
|
|
79
|
+
- **Target normative doc(s)** — prefer extending existing files in `02-architecture/{component}/` or `04-contracts/{component}/`
|
|
80
|
+
- **Disposition**: `archive` | `keep-active` | `update-status-to-deferred`
|
|
81
|
+
|
|
82
|
+
### 2) Documentation sweep — find every doc that needs updating
|
|
83
|
+
|
|
84
|
+
**Do this before writing a single word.** Never hand-pick files from memory — always search first.
|
|
85
|
+
|
|
86
|
+
#### Step A — ripgrep for all relevant terms
|
|
87
|
+
|
|
88
|
+
Extract the key terms from the plan: API paths, function names, event names, error strings, feature labels, component names. Run one search across the entire doc tree:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# From enact-docs root
|
|
92
|
+
rg -l "<term1>|<term2>|<term3>" --type md .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Example for a gateway plan touching `/v1/responses` and streaming:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
rg -l "/v1/responses|response\.created|chatCompletionStream|OutputTextDelta" --type md .
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Collect every matching path into a **candidate list**.
|
|
102
|
+
|
|
103
|
+
#### Step B — follow frontmatter `related:` chains
|
|
104
|
+
|
|
105
|
+
For **every file** in the candidate list, read its `related:` frontmatter and add those paths to the candidate list too. Also follow `related:` from the plan file itself and from any normative doc you already intend to update:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Extract related: entries from a candidate file
|
|
109
|
+
grep -A 20 "^related:" <file> | grep "^\s*-\s" | sed 's/.*- //'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Repeat until no new files are added.
|
|
113
|
+
|
|
114
|
+
#### Step C — read and classify each candidate
|
|
115
|
+
|
|
116
|
+
For each file in the final candidate list:
|
|
117
|
+
|
|
118
|
+
1. Read the file (or scan it for the key terms)
|
|
119
|
+
2. Classify each hit:
|
|
120
|
+
- **Stale claim** — says the feature is unavailable, broken, incomplete, or missing → **must update**
|
|
121
|
+
- **Status reference** — links to or describes the plan's status → **update to reflect completion**
|
|
122
|
+
- **Generic usage** — uses the term in English prose without making a feature claim → **skip**
|
|
123
|
+
3. Build a final **update list** of must-update files
|
|
124
|
+
|
|
125
|
+
#### Step D — confirm plan-linking docs
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Find docs that link directly to the plan file by name
|
|
129
|
+
grep -rl "$(basename <plan-file> .md)" . --include="*.md"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Add any hits not already in the update list.
|
|
133
|
+
|
|
134
|
+
Only after completing A–D should you proceed to step 3.
|
|
135
|
+
|
|
136
|
+
### 3) Merge durable facts
|
|
137
|
+
|
|
138
|
+
- Copy only stable behavior, file paths, contracts — not stale TODOs.
|
|
139
|
+
- Update the relevant architecture/contract doc with the shipped behavior.
|
|
140
|
+
- Where deferred scope exists that could be mistaken for shipped behavior, add a **Watchout** note in the normative doc.
|
|
141
|
+
- Update STATUS comments in `04-contracts/` YAML/MD files from "not yet implemented" to "implemented in {src path}".
|
|
142
|
+
- Update every file on the **update list** from step 2. Record which files were updated.
|
|
143
|
+
|
|
144
|
+
### 4) Archive
|
|
145
|
+
|
|
146
|
+
- Move completed plans: `git mv 07-plans/active/{plan}.md 07-plans/archive/{component}/{plan}.md`
|
|
147
|
+
- Update the plan's frontmatter: `status: archived`, add `archived_date` and `normative_target:` fields.
|
|
148
|
+
- For partially-completed plans: update `status: partial-complete`, add a note listing done vs pending at the top of the file before archiving.
|
|
149
|
+
- Plans that are active but need more work: update `status` field and leave in active.
|
|
150
|
+
|
|
151
|
+
### 5) Update index docs
|
|
152
|
+
|
|
153
|
+
- **CHANGELOG.md** — append under `[Unreleased]` with Added/Changed entries listing:
|
|
154
|
+
- Plans archived (with archive path)
|
|
155
|
+
- Normative docs updated (with paths)
|
|
156
|
+
- All other docs updated from the sweep (with paths)
|
|
157
|
+
- **DOCS-MAP.md** — refresh any stale entries that pointed to now-archived plans.
|
|
158
|
+
- **GLOSSARY.md** — update any terms that changed with the vocabulary cleanup.
|
|
159
|
+
|
|
160
|
+
### 6) Verification
|
|
161
|
+
|
|
162
|
+
- Confirm documentation sweep was completed (candidate list built, all items classified):
|
|
163
|
+
```bash
|
|
164
|
+
# Re-run the rg sweep and confirm no new hits appeared that you missed
|
|
165
|
+
rg -l "<key terms>" --type md .
|
|
166
|
+
```
|
|
167
|
+
- Grep for broken links to old active-plan paths:
|
|
168
|
+
```bash
|
|
169
|
+
grep -r "07-plans/active/{archived-plan-name}" . --include="*.md"
|
|
170
|
+
```
|
|
171
|
+
- Confirm at least one `02-architecture/` or `04-contracts/` doc changed.
|
|
172
|
+
- Run `ctx_knowledge remember` (see Knowledge recall first section).
|
|
173
|
+
|
|
174
|
+
## Topic → normative doc mapping (enact-factory)
|
|
175
|
+
|
|
176
|
+
| Topic | First-fit normative doc |
|
|
177
|
+
| -------------------------------------------------------- | -------------------------------------------------------- |
|
|
178
|
+
| Vocabulary / stage names (coder/critic/stage-documenter) | `02-architecture/factory/pair-pipeline-and-workitems.md` |
|
|
179
|
+
| Config schema (projects/path/heartbeatMs) | `04-contracts/factory/config-target-design.yaml` |
|
|
180
|
+
| Operator activation / handoff | `04-contracts/factory/handoff-and-scheduler.md` |
|
|
181
|
+
| Closure contracts / scheduler loop | `02-architecture/factory/pair-pipeline-and-workitems.md` |
|
|
182
|
+
| DB / postgres / sqlite | `05-operations/factory/` |
|
|
183
|
+
| WorkItem state axes | `04-contracts/factory/` |
|
|
184
|
+
| MCP tools | `04-contracts/factory/` |
|
|
185
|
+
|
|
186
|
+
## Git notes
|
|
187
|
+
|
|
188
|
+
- Use `git mv` for archive moves so history is traceable.
|
|
189
|
+
- Do NOT stage or commit unless the user asks — they handle their own commit workflow.
|
|
190
|
+
- Stage explicit file paths, not `git add .`, to avoid sweeping unrelated changes.
|
|
191
|
+
|
|
192
|
+
## Reference
|
|
193
|
+
|
|
194
|
+
- Full checklist template and archive layout: [references/reference.md](references/reference.md)
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Plan Graduation"
|
|
3
|
+
short_description: "Graduate completed enact-docs plans into architecture/contracts and archive them cleanly."
|
|
4
|
+
default_prompt: "Use this skill to graduate completed enact-docs plans into durable architecture and contract docs, archive the plans, update changelog/index docs, and record graduation context in ctx_knowledge."
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Reference — plan graduation artifacts (enact-docs)
|
|
2
|
+
|
|
3
|
+
## Archive subfolder layout
|
|
4
|
+
|
|
5
|
+
Always archive under a component subfolder, never at the archive root:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
07-plans/archive/
|
|
9
|
+
├── factory/ # enact-factory plans
|
|
10
|
+
├── memory/ # enact-wiki plans
|
|
11
|
+
├── context/ # enact-context plans
|
|
12
|
+
├── runtime/ # enact-runtime plans (Governed Execution DAG)
|
|
13
|
+
├── omx/ # OMX operator plans
|
|
14
|
+
└── cross-repo/ # plans spanning multiple components
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Plan frontmatter fields
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
---
|
|
21
|
+
type: reference
|
|
22
|
+
status: active
|
|
23
|
+
owner: enact-factory
|
|
24
|
+
archived_date: 2026-05-16
|
|
25
|
+
normative_target: 04-contracts/factory/handoff-and-scheduler.md
|
|
26
|
+
---
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Valid `type` values: `plan`, `contract`, `architecture`, `decision`, `reference`
|
|
30
|
+
Valid `status` values: `active`, `proposed`, `partial-complete`, `archived`, `deferred`
|
|
31
|
+
|
|
32
|
+
## Archive checklist (per plan)
|
|
33
|
+
|
|
34
|
+
Before moving a plan to archive, verify:
|
|
35
|
+
|
|
36
|
+
**Documentation sweep (must complete before any edits):**
|
|
37
|
+
|
|
38
|
+
- [ ] `rg -l` run for all key terms from the plan (API paths, function names, event names, feature labels, error strings)
|
|
39
|
+
- [ ] Candidate list built from all rg hits
|
|
40
|
+
- [ ] Frontmatter `related:` chains followed from every candidate file AND from the plan file itself — new hits added to candidate list
|
|
41
|
+
- [ ] Frontmatter `related:` chains followed transitively until no new files are added
|
|
42
|
+
- [ ] Every candidate file read and classified: stale claim / status reference / generic usage
|
|
43
|
+
- [ ] Plan-linking grep run: `grep -rl "$(basename <plan-file> .md)" . --include="*.md"` — any hits added to update list
|
|
44
|
+
- [ ] All stale-claim and status-reference files updated, paths listed in CHANGELOG entry
|
|
45
|
+
|
|
46
|
+
**Architecture gate:**
|
|
47
|
+
|
|
48
|
+
- [ ] At least one `02-architecture/{component}/` or `04-contracts/{component}/` doc updated with durable facts from this plan
|
|
49
|
+
- [ ] STATUS comments in YAML/MD contracts updated from "SA proposal" / "not yet implemented" → "implemented in src/..."
|
|
50
|
+
|
|
51
|
+
**Index docs:**
|
|
52
|
+
|
|
53
|
+
- [ ] CHANGELOG.md has an entry under `[Unreleased]` with the archive path, normative doc paths, and all sweep-updated doc paths
|
|
54
|
+
- [ ] No broken links to the old `07-plans/active/` path remain (grep check)
|
|
55
|
+
- [ ] `ctx_knowledge` memory entry recorded
|
|
56
|
+
|
|
57
|
+
## CHANGELOG.md entry shape
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
### Changed (documentation)
|
|
61
|
+
|
|
62
|
+
- Archived `07-plans/active/2026-05-16-operator-vocabulary-cleanup.md`
|
|
63
|
+
→ `07-plans/archive/factory/2026-05-16-operator-vocabulary-cleanup.md`
|
|
64
|
+
Normative: `02-architecture/factory/pair-pipeline-and-workitems.md`,
|
|
65
|
+
`04-contracts/factory/config-target-design.yaml`
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## `ctx_knowledge` patterns
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
# Search before starting
|
|
72
|
+
ctx_knowledge(action="search", query="factory plan graduation")
|
|
73
|
+
|
|
74
|
+
# Record after archiving
|
|
75
|
+
ctx_knowledge(action="remember", key="plan:2026-05-16-operator-vocabulary-cleanup:archived_to", value="07-plans/archive/factory/2026-05-16-operator-vocabulary-cleanup.md")
|
|
76
|
+
ctx_knowledge(action="remember", key="plan:2026-05-16-operator-vocabulary-cleanup:normative_target", value="02-architecture/factory/pair-pipeline-and-workitems.md")
|
|
77
|
+
|
|
78
|
+
# Session note
|
|
79
|
+
ctx_knowledge(action="remember", key="session:2026-05-16:graduation-summary", value="graduated 2 factory plans; VC slices 2-5 complete; SA phases A/B/C done")
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Documentation sweep commands
|
|
83
|
+
|
|
84
|
+
Run all of these **before writing a single word** of documentation updates.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Step A — find every doc that mentions the plan's key terms
|
|
88
|
+
# Replace terms with API paths, function names, event names, feature labels from the plan
|
|
89
|
+
rg -l "<term1>|<term2>|<term3>" --type md .
|
|
90
|
+
|
|
91
|
+
# Example for a gateway plan touching /v1/responses and streaming events:
|
|
92
|
+
rg -l "/v1/responses|response\.created|chatCompletionStream|OutputTextDelta|response\.output_item" --type md .
|
|
93
|
+
|
|
94
|
+
# Step B — for each candidate file, extract its related: frontmatter entries
|
|
95
|
+
# Run this for every file in the candidate list and for the plan file itself
|
|
96
|
+
grep -A 20 "^related:" <candidate-file> | grep "^\s*-\s" | sed 's/.*- //'
|
|
97
|
+
|
|
98
|
+
# Step C — find docs that link directly to the plan file by name
|
|
99
|
+
grep -rl "$(basename <plan-file> .md)" . --include="*.md"
|
|
100
|
+
|
|
101
|
+
# Confirm sweep found architecture/contracts candidates
|
|
102
|
+
echo "Architecture candidates:"; rg -l "<term1>|<term2>" --type md 02-architecture/ 04-contracts/
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Repeat Step B until no new files are added. Only then proceed to classify (stale claim / status reference / generic) and edit.
|
|
106
|
+
|
|
107
|
+
## Grep hygiene
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Find broken links to archived plan (run from enact-docs root)
|
|
111
|
+
grep -r "07-plans/active/2026-05-16-operator-vocabulary-cleanup" . --include="*.md"
|
|
112
|
+
|
|
113
|
+
# Confirm architecture/contracts docs were touched
|
|
114
|
+
git diff --name-only | grep -E "^(02-architecture|04-contracts)/.*\.md"
|
|
115
|
+
|
|
116
|
+
# Find STATUS comments still saying "not yet implemented"
|
|
117
|
+
grep -r "not yet implemented\|SA proposal — not yet\|not yet read by" 04-contracts/ --include="*.md" --include="*.yaml"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Partial-complete plan note template
|
|
121
|
+
|
|
122
|
+
Add at the top of a partially-done plan before archiving:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
<!-- ARCHIVED 2026-05-16
|
|
126
|
+
Done: Slice 1 (vocab cleanup), Slice 2 (MCP renames), Slice 3 (stage keys)
|
|
127
|
+
Pending: D13 (reseed detection — deferred to post live-testing)
|
|
128
|
+
Normative: 02-architecture/factory/pair-pipeline-and-workitems.md
|
|
129
|
+
-->
|
|
130
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "devops",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "DevOps skills for Enact: Azure DevOps CLI workflows and CI pipeline strategy for branch, build, and release operations.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Amsterdam Data Labs"
|
|
7
|
+
},
|
|
8
|
+
"license": "UNLICENSED",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"devops",
|
|
11
|
+
"azure-devops",
|
|
12
|
+
"ci",
|
|
13
|
+
"pipeline",
|
|
14
|
+
"release"
|
|
15
|
+
],
|
|
16
|
+
"targets": [
|
|
17
|
+
"claude",
|
|
18
|
+
"codex",
|
|
19
|
+
"cursor"
|
|
20
|
+
],
|
|
21
|
+
"skills": "./skills/",
|
|
22
|
+
"interface": {
|
|
23
|
+
"displayName": "DevOps",
|
|
24
|
+
"shortDescription": "Azure DevOps CLI and CI pipeline strategy skills.",
|
|
25
|
+
"developerName": "Amsterdam Data Labs",
|
|
26
|
+
"category": "Developer Tools",
|
|
27
|
+
"capabilities": [
|
|
28
|
+
"azure devops cli",
|
|
29
|
+
"ci pipeline strategy"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"factory": {
|
|
33
|
+
"firstParty": true,
|
|
34
|
+
"operatorScope": "global"
|
|
35
|
+
}
|
|
36
|
+
}
|