Skip to main content

init-loop

Install the closed test loop into a fresh project. Copies the pre-commit hook, the CI workflow, the render script, the drift check script, the failure classifier, and the knowledge-base templates, then prepares the drill handoff that verifies the loop reacts.

Informações da origem

Repositório
majiayu000/test-loop
Última atividade na origem
23 de junho de 2026 às 15:05
Idioma detectado do SKILL.md
inglês
Estrelas
0
Forks
0

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
init-loop
description
Install the closed test loop into a fresh project. Copies the pre-commit hook, the CI workflow, the render script, the drift check script, the failure classifier, and the knowledge-base templates, then prepares the drill handoff that verifies the loop reacts.
metadata
{"type":"project","language":"any","inputs":"target project path, language, optional existing knowledge base","outputs":"scripts/, .githooks/, .github/workflows/, docs/knowledge/ populated"}
# init-loop Stand up the closed test loop in a project that does not have it. ## When to use - Once, at the start of a new project, after the build system works. - Once, in an existing project that has a test suite but no loop. - After forking a project that you want to bring up to the same standard as the rest of your fleet. Do not use this skill to install a single piece of the loop. If you only want the drift check, copy `scripts/check_drift.sh` directly and move on. ## Inputs | Name | Required | Default | Description | | --- | --- | --- | --- | | `target_path` | yes | none | Path to the project root. The skill refuses to write outside this directory. | | `language` | yes | none | One of `swift`, `python`, `go`, `rust`. Picks the source glob and the failure-classify patterns. | | `ci_provider` | no | `github` | Currently only `github` is supported. `gitlab` and `circleci` are tracked for v0.3. | | `knowledge_base_path` | no | `docs/knowledge/` | Where the L0/L1/L2 Markdown lives. The skill will create the directory if it does not exist. | | `existing_loop_check` | no | `true` | When `true`, the skill aborts if it finds an existing `.githooks/pre-commit` or `.github/workflows/test.yml` to avoid clobbering. | ## Output The skill writes into `target_path`: | Path | Contents | | --- | --- | | `bin/check_drift.sh` | The drift check script. | | `bin/classify_failures.py` | The failure classifier. | | `bin/render_report.sh` | The report renderer. | | `.githooks/pre-commit` | The drift guardrail. | | `.github/workflows/test.yml` | The CI workflow. | | `docs/knowledge/L0_overview.md` | A starter L0 file the user is expected to fill in. | | `docs/knowledge/L1_modules.md` | A starter L1 file. | | `docs/knowledge/L2_equivalence_classes.md` | A starter L2 file. | | `docs/spec/closed-loop.md` | A reference spec explaining the loop. | | `.gitignore` (append) | `docs/reports/` if not already ignored. | After writing, the skill prepares the [drill](../drill/SKILL.md) procedure that verifies the loop reacts to a real injected failure. v0.1 agents should ask before injecting failures into a target project. ## Algorithm 1. **Detect** the language from the project: `Package.swift` for Swift, `pyproject.toml` for Python, `go.mod` for Go, `Cargo.toml` for Rust. 2. **Refuse** if the project already has the loop and `existing_loop_check=true`. 3. **Copy** each file in the table above from `bin/`, `templates/`, and `templates/knowledge/`. If the target file already exists, skip it. Do not overwrite user-edited files. 4. **Configure** `git config core.hooksPath .githooks` in the target project, so the pre-commit hook is active. 5. **Prepare the drill handoff** by naming the command and files the [drill](../drill/SKILL.md) skill will touch. Run the drill only after the user approves the injected failure. ## Worked example ```bash # Add the loop to a Swift project. test-loop init --target /path/to/project --language swift # Or, since v0.1 ships skills rather than a CLI, the equivalent # agent-driven flow: # 1. /init-loop target=/path/to/project language=swift # 2. /drill target=/path/to/project ``` ## Anti-patterns - **Overwriting an existing loop.** Always run with `existing_loop_check=true` unless you know the existing loop is broken beyond repair. - **Treating the starter L0/L1/L2 files as a finished knowledge base.** They are scaffolding. Fill them in based on the project's actual modules and contracts. - **Skipping the drill.** The drill is the only way to know the loop actually reacts. A loop that was copied but never drilled is a loop that may not work. ## Cross-references - [drill](../drill/SKILL.md) — the next step, run automatically by this skill. - [drift-check](../drift-check/SKILL.md) — one of the pieces this skill installs. - [report-render](../report-render/SKILL.md) — another piece. - [test-loop-bootstrap](../test-loop-bootstrap/SKILL.md) — for users who do not know which skill to start with.
Ver no GitHub