Skip to main content

eou-foundry-init

Use when the user asks to initialize, scaffold, or create a new EOU-governed application. Creates a sibling directory with foundry/, instance copies of plugin templates, a starter constitution, and an initial git repo. Refuses to overwrite an existing directory.

معلومات المصدر

المستودع
xiaolai/eou-foundry
آخر نشاط في المصدر
٣٠ سبتمبر ٢٠٢٦ في ٠٦:٠٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٠
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
eou-foundry-init
description
Use when the user asks to initialize, scaffold, or create a new EOU-governed application. Creates a sibling directory with foundry/, instance copies of plugin templates, a starter constitution, and an initial git repo. Refuses to overwrite an existing directory.
metadata
{"short-description":"Scaffold a new EOU-governed app"}
# Initialize EOU-Governed Application You are scaffolding a new EOU-governed application. The user is invoking this from a workspace directory and should supply an app name. ## 1. Get the app name If the user supplied an app name in their request, use it. Otherwise ask: "What is the application's slug name? (lowercase, alphanumeric + hyphen)" Optional inputs: - A one-line description of what the application does (defaults to the slug) - `NO_GIT=1` — set this environment variable before the command to skip `git init` in the new directory (default: initialize git) Validate the slug. Reject names containing `/`, `\`, `..`, a leading `.`, or any character outside `[a-z0-9-]`. Refuse to overwrite an existing directory. ## 2. Run init script > `${PLUGIN_ROOT}` is the Codex runtime env var for the plugin root. The Claude Code equivalent is `${CLAUDE_PLUGIN_ROOT}`. Both resolve to the same directory — the name differs by runtime. Run `bash "${PLUGIN_ROOT}/scripts/init_app.sh" "$APP_NAME" "$DESCRIPTION" $([ "$NO_GIT" = "1" ] && echo "--no-git")` and let the script handle the existence check and scaffolding atomically. Report what it produced. ## 3. What the script does (for reference) `scripts/init_app.sh` is idempotent in the sense of "refuse to clobber": - Refuses if `./<app-name>/` already exists. - Creates `./<app-name>/` and inside it: - `foundry/constitution.yml` and `foundry/registry.yml` (empty), filled from `templates/`. Nothing else is copied: governance, the failure taxonomy, the maturity model, refactoring patterns, the runtime contract and the meta-EOUs stay in `engine/` and are inherited. An app shadows one by adding `foundry/overrides/<file>.yml`. - Empty `foundry/eous/`, `foundry/incidents/`, `foundry/audits/no-trace/`, `foundry/runs/`, `foundry/overrides/` and `foundry/self-evolution/{ecp/{proposed,approved,implemented,rejected},regression/{cases,fixtures},upstream/{proposed-to-plugin,landed}}/`. - `AGENTS.md`, plus `CLAUDE.md` and `GEMINI.md` that import it. - `.claude/settings.json` and a `.claude/hooks/foundry_guard.py` hook that runs the validator on edited foundry files. - `.gitignore` with the standard AI-tool ignores. - `README.md` one-paragraph application overview. - Substitutes `{{APP_NAME}}` and `{{DESCRIPTION}}` placeholders in the two template files. - Unless `--no-git`, runs `git init` and makes a single initial commit. - Runs `validate_foundry.py` against the new app to confirm the scaffold passes the schema check. ## 4. Report If the script returns exit code 0, surface a summary of what was created: ``` App initialized: ✓ <app-name>/ created with foundry/, .claude/, AGENTS.md, README.md ✓ foundry/constitution.yml from template, customized for <app-name> ✓ foundry/registry.yml empty (entries: []) ✓ git repo initialized (or "skipped: NO_GIT=1") ✓ validate_foundry.py OK Next steps: cd <app-name> edit AGENTS.md # the application's instructions edit foundry/constitution.yml # tailor invariants to this app's domain $generate-eou-candidates # produce candidate EOUs for the workflow ``` ## 5. Constraints - Do not create an app directory interactively — require the slug as input before proceeding. - Do not overwrite an existing directory — delegate the check to `init_app.sh` and report the exit code 2 error. - Do not run `git init` or `validate_foundry.py` manually — the script handles both atomically. - Do not modify template files or the plugin's own foundry during initialization. - Do not proceed past Step 2 if the slug fails validation — report the error immediately. ## 6. Errors If `init_app.sh` fails: - Exit code 2 (existing directory): report "Directory `<app-name>/` already exists; refusing to overwrite. Pick a different name or move it aside." - Exit code 3 (invalid slug): report "Invalid app name. Use lowercase alphanumeric + hyphen only." - Exit code 4 (validate_foundry failed): show the validator output, then say "Scaffold completed but validation found issues. Inspect `<app-name>/foundry/` and fix before continuing." - Any other non-zero: show the script's stderr verbatim.
عرض على GitHub