agent-loop-ext
Crash-resilient external agent loop with state persistence and CI/CD integration
Regenerate CLAUDE.md for Claude Code with hook file architecture
$ npx -y skills add jmagly/aiwg --skill aiwg-regenerate-claude --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/aiwg-regenerate-claudeContext preview
The summary Claude sees to decide when to auto-load this skill.
Regenerate CLAUDE.md for Claude Code with hook file architecture
namespace: aiwg name: aiwg-regenerate-claude platforms: [all] description: Regenerate CLAUDE.md for Claude Code with hook file architecture
<!-- AIWG-SKILL-CALLOUT --> > **Skill access pattern (post-kernel-pivot, 2026.5+)** > > Skill names referenced in this document's *narrative* are AIWG skills, **not slash commands**. Most are not kernel-listed and cannot be invoked as `/skill-name` by the platform. Reach them via: > > ```bash > aiwg discover "<capability>" > aiwg show skill <name> > ``` > > Only kernel-listed skills (`aiwg-doctor`, `aiwg-refresh`, `aiwg-status`, `aiwg-help`, `use`, `steward`) are directly invokable as slash commands. See [skill-discovery rule](../../rules/skill-discovery.md). > > **Exception**: The "Available Slash Commands (Claude Code)" template block below is *generated output* destined for end-user CLAUDE.md files, where Claude Code's slash-command syntax applies. Slash prefixes in that block are preserved intentionally.
Regenerate the CLAUDE.md file for Claude Code integration. This command performs an **intelligent merge** — analyzing the current project state while preserving team-written content.
**Hook file architecture (default):** Generates `AIWG.md` with all AIWG context, and adds a single `@AIWG.md` directive to CLAUDE.md. This keeps CLAUDE.md minimal and user-owned.
**Full injection (`--full-inject`):** Legacy mode — injects full AIWG content directly into CLAUDE.md (useful for platforms that do not support @-link loading, or user preference).
**Vendor-specific filtering:** This command includes ONLY Claude Code slash commands and agents, reducing context pollution. Other vendor content is referenced but not inlined.
**Team content is preserved. AIWG content is updated. Only Claude-specific content is inlined.**
The agent must distinguish between:
| Flag | Description | |------|-------------| | `--no-backup` | Skip creating backup file | | `--dry-run` | Preview changes without writing | | `--full` | Full regeneration - replaces everything (destructive) | | `--full-inject` | Inject AIWG content directly into CLAUDE.md (legacy/compatibility mode) | | `--migrate` | Migrate existing full-injection to hook file approach (runs `/migrate-hook --provider claude`) |
When running without `--full-inject`:
1. **Generate `AIWG.md`** — assembles AIWG context from installed framework manifests 2. **Update `CLAUDE.md`** — minimal: user content + `@AIWG.md` directive
# CLAUDE.md ## Repository Purpose [your project description] @AIWG.md ## Project-Specific Notes [your team conventions here]
To revert to inline injection: `/aiwg-regenerate-claude --full-inject`
To disable context temporarily: `aiwg hook-disable`
Unless `--no-backup` specified:
1. Check if `CLAUDE.md` exists 2. If exists, copy to `CLAUDE.md.backup-{YYYYMMDD-HHMMSS}` 3. Report: `Backup created: CLAUDE.md.backup-20260113-152233`
If no existing file, skip backup and note: `No existing CLAUDE.md found, generating fresh.`
If existing CLAUDE.md present (and not `--full`):
**Read the file and intelligently categorize each section:**
**Team Content (PRESERVE):**
**AIWG Content (UPDATE):**
**Identification Heuristics:**
**Detect Languages & Package Managers:**
Use Glob to find package files:
package.json → Node.js/npm pyproject.toml / requirements.txt → Python go.mod → Go Cargo.toml → Rust pom.xml / build.gradle → Java composer.json → PHP Gemfile → Ruby
**Extract Development Commands:**
From `package.json`:
{
"scripts": {
"build": "tsc",
"test": "vitest",
"lint": "eslint ."
}
}From `Makefile`:
build:
go build ./...
test:
go test ./...**Detect Test Framework:**
| File Pattern | Framework | |--------------|-----------| | `jest.config.*` | Jest | | `vitest.config.*` | Vitest | | `pytest.ini`, `conftest.py` | Pytest | | `*_test.go` | Go testing | | `.rspec` | RSpec | | `phpunit.xml` | PHPUnit |
**Detect CI/CD:**
| Path | Platform | |------|----------| | `.github/workflows/*.yml` | GitHub Actions | | `.gitlab-ci.yml` | GitLab CI | | `Jenkinsfile` | Jenkins | | `.circleci/config.yml` | CircleCI | | `azure-pipelines.yml` | Azure DevOps |
**Extract Project Description:**
Read first meaningful paragraph from `README.md` or `description` from `package.json`.
**Analyze Directory Structure:**
src/ or lib/ → Source code test/ or tests/ or __tests__/ → Tests docs/ → Documentation scripts/ or tools/ → Tooling .github/ → GitHub configuration
**Check for installed frameworks:**
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