agent-loop-ext
Crash-resilient external agent loop with state persistence and CI/CD integration
Generate a `setup.manifest.yaml` file for a project using the `setup.aiwg.io/v1`
$ npx -y skills add jmagly/aiwg --skill setup-generate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/setup-generateContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate a `setup.manifest.yaml` file for a project using the `setup.aiwg.io/v1`
namespace: aiwg name: setup-generate platforms: [all] description: "Generate a `setup.manifest.yaml` file for a project using the `setup.aiwg.io/v1`"
Generate a `setup.manifest.yaml` file for a project using the `setup.aiwg.io/v1` SetupManifest language.
Path to the project root. Defaults to `.`.
Manifest path to create. Default: `./setup.manifest.yaml`.
Manifest `metadata.name`. Default: package name or project directory name.
Install type: `user`, `developer`, or `ci`. Default: `developer`.
Target platform: `linux`, `macos`, `windows`, or `docker`.
Overwrite existing generated manifest/script files.
Install type to generate: `user`, `developer`, or `ci`. Default: `user`.
When `--type developer`, output filename is `setup.dev.manifest.yaml`. When `--type user`, output is `setup.user.manifest.yaml` (or `setup.manifest.yaml` if no type is specified for backwards compatibility).
Ask clarifying questions before generating.
1. Read the project root to understand structure:
2. Parse local project cues when they are available; the CLI entrypoint emits a conservative starter manifest and leaves richer project-specific authoring to the agent skill. 3. If `--interactive`, ask:
Additional discovery steps for developer manifests:
1. Scan for dev-specific indicators: `.nvmrc`, `.tool-versions`, `mise.toml`, `pyproject.toml [dev]`, `Brewfile`, `.devcontainer/` 2. Detect Docker-in-dev usage patterns (bind mounts, live reload, `--watch` flags) 3. If `--interactive` or key information is absent, ask mandatory interactive questions:
Build the manifest YAML following this priority order:
1. **metadata block** — include `install_type` matching `--type` flag (default: `developer`) 2. **platform block** — from `--platform` or detected by project type 3. **params block** — standard params: `INSTALL_DIR`, `BRANCH` (default: `main`); add `CONFIG_DIR` if a config step is needed 4. **prerequisites block** — from project type (e.g., `node` for npm projects, `python3` for Python) 5. **steps block** — construct from script templates:
6. **recovery_procedures block** — always include a `full-reset` fallback
When assembling developer manifests, apply these additional rules:
**os_config block** — emit entries based on detection:
| Condition | Entry | |-----------|-------| | Linux + Docker in project | `docker-group` (requires_relogin: true) | | Linux + file watchers detected (webpack/jest/vite/nodemon) | `inotify-watches` | | Linux + Elasticsearch/Weaviate/OpenSearch detected | `vm-mapcount` | | macOS | `xcode-cli-tools` (interactive: true) | | HTTPS dev + local domain | mkcert install step (not os_config, but a script step) | | GPU dev | `nvidia-container-toolkit` os_config entry |
**params** — emit with `interactive_required: true` for:
**steps** — emit os-config steps for each os_config entry:
- id: apply-docker-group type: os-config config_id: docker-group depends_on: [install-docker] platform: linux
**dev-specific prerequisites** — add as detected:
When `docker-compose.yml` or `compose.yaml` is found during Phase 1 discovery, apply these additional behaviors:
**Platform** (#676):
**Prerequisites** (#672, #674):
Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.
Repo: jmagly/aiwg
Crash-resilient external agent loop with state persistence and CI/CD integration
Detect requests for iterative autonomous agent loops and route to the appropriate loop executor
Automatically execute tests when code-generating agents modify source files, enforcing the execute-before-return pattern
Enable agent loops to learn from similar past tasks and share patterns across loops
Query and manage the executable feedback debug memory
Execute tests on generated code and iterate until passing