--- name: init description: "Paved command paved.init. Bootstrap the pinned project-local Paved runtime and initialize this repository." --- # Paved `init` command (paved.init) Bootstrap the pinned project-local Paved runtime and initialize this repository. **Input:** No arguments. **Output:** Initialization result, detected adapters, lifecycle state, and diagnostics. **Required lifecycle:** UNINITIALIZED **Required context:** .paved/manifest.yaml, repository evidence **Required capabilities:** none declared **Allowed side effects:** .paved/ initialization state, generated project context, managed AGENTS.md block ## Execution contract 1. Invoke `node "/scripts/paved.mjs" init --json` from the repository root, passing the user's command inputs as supported CLI arguments. The launcher loads the pinned project-local runtime and returns the canonical structured result. `` is the installed Paved plugin directory, two directories above this SKILL.md. Always run the launcher from the repository being worked on, never from the plugin directory. 2. Follow the structured result's status, diagnostics, evidence, and next action. Stop when the runtime blocks execution. ## Failure behavior - Existing Paved state is never reset. - Invalid partial state fails with diagnostics. - Package acquisition and runtime activation require verified integrity. - If a required ToolImplementation or runtime is unavailable, stop and explain the missing prerequisite. Never infer or execute a command from repository scripts. - Do not edit human-owned Paved state or bypass lifecycle, ownership, approval, or verification gates. ## Conversational contract 1. Invoke the command. If it returns `"status": "awaiting_input"`, it is waiting on the user. 2. Present every decision in `decisions[]` to the user: what Paved detected, what remains to decide, why it matters, the options, Paved's recommendation and its evidence. 3. Collect the user's answer. Do not answer on their behalf. 4. Resume the same command with `--answer = --answered-by `, repeating `--answer` once per value for a multi-choice decision. 5. Present the result. Follow `core.decisions.decisions` for the full interaction protocol and its prohibitions.