git:20260527.5b1cf19 to git:20260530.496d156

71 added, 7 removed. Audit A to A.

---
name: metagit-bootstrap
- description: Use when generating or refining local .metagit.yml files using deterministic discovery plus MCP sampling.
+ description: Use when generating or refining local .metagit.yml files using deterministic discovery plus MCP sampling or CLI-only fallbacks.
---
# Metagit MCP Bootstrap Skill
Use this skill to create a local `.metagit.yml` using discovery-driven prompts and MCP sampling.
## Purpose
Generate schema-compliant `.metagit.yml` files with high contextual quality while preserving safety and explicit user control.
- ## Local Script Wrapper (Use First)
+ ## Bundled scripts (optional)
- Use this token-efficient wrapper for local bootstrap tasks:
- - `./scripts/bootstrap-config.sh [root_path] [force]`
+ Helper scripts require the full skill tree or the PyPI package copy. Hermes `skill_manage`
+ (SKILL.md only) does **not** include `scripts/`.
+ ```bash
+ SKILL_ROOT="$(python3 -c "import metagit, pathlib; print(pathlib.Path(metagit.__file__).parent / 'data/skills/metagit-bootstrap')")"
+ "$SKILL_ROOT/scripts/bootstrap-config.sh" [root_path] [force]
+ ```
+
Behavior:
- - Writes `.metagit.yml` when missing
+ - Writes `.metagit.yml` when missing (minimal application scaffold)
- Validates via Metagit config models
- Returns a compact status line for agents
- ## Workflow
+ ## Execution modes
+ | Mode | When |
+ |------|------|
+ | **CLI-only** | Shell agent, no MCP host, Hermes without sampling |
+ | **MCP sampling** | Host supports `sampling/createMessage` |
+ | **Plan-only** | Sampling unavailable; return draft for human/agent review |
+
+ ## CLI-only fallback (no MCP sampling)
+
+ Use this path when `sampling/createMessage` is unavailable — common in CLI-only agent
+ sessions or Hermes installs without MCP sampling.
+
+ 1. **Discover evidence** from the target repository:
+
+ ```bash
+ export METAGIT_AGENT_MODE=true
+ metagit detect repository -p . -o json
+ metagit detect repo -p . -o yaml
+ metagit detect project -p . -o yaml
+ metagit detect repo_map -p . -o json
+ ```
+
+ 2. **Minimal manifest** when none exists:
+
+ ```bash
+ metagit init --kind application --no-prompt
+ # or: "$SKILL_ROOT/scripts/bootstrap-config.sh" .
+ metagit config validate -c .metagit.yml
+ ```
+
+ 3. **Richer draft** — agent composes YAML from detect output + schema reference:
+
+ ```bash
+ metagit config example # full annotated exemplar
+ metagit config tree -c .metagit.yml --json # after minimal init
+ ```
+
+ Write draft to `.metagit.generated.yml`, validate, then promote on confirmation:
+
+ ```bash
+ metagit config validate -c .metagit.generated.yml
+ mv .metagit.generated.yml .metagit.yml # only after explicit operator approval
+ metagit config validate -c .metagit.yml
+ ```
+
+ 4. **Incremental refinement** on an existing manifest:
+
+ ```bash
+ metagit config show -c .metagit.yml --json
+ metagit config patch -c .metagit.yml --op set --path <path> --value <json> --save
+ metagit prompt repo -p P -n R -k repo-enrich --text-only # merge detect into catalog
+ ```
+
+ Never call MCP-only bootstrap tools from CLI-only sessions. Do not overwrite `.metagit.yml`
+ without explicit confirmation.
+
+ ## MCP sampling workflow
+
+ When sampling **is** supported:
+
1. Gather deterministic discovery data from the target repository:
- source language/framework indicators
- package/lock/build files
- Dockerfiles and CI workflows
- terraform files and module usage
2. Build a strict prompt package:
- output format contract: valid YAML only
- required schema fields and constraints
- extracted discovery evidence
- 3. If sampling is supported, call `sampling/createMessage`.
+ 3. Call `sampling/createMessage`.
4. Validate generated YAML with Metagit config models.
5. Retry with validation feedback up to a fixed max attempt count.
6. Return draft output and write only on explicit confirmation.
## Output Modes
- **Plan-only mode**: return prompt + discovery summary if sampling unavailable.
- **Draft mode**: return `.metagit.generated.yml` content.
- **Confirmed write mode**: write to `.metagit.yml` only with explicit parameter (`confirm_write=true`).
## Quality Bar
- Preserve discovered evidence in structured fields.
- Include workspace project and related repo entries where detectable.
- Avoid invented repositories or unverifiable dependencies.
## Safety Rules
- Never overwrite `.metagit.yml` silently.
- Never emit secrets in cleartext.
- Prefer placeholders for credentials or tokens.