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.

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

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

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

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

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

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

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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.
عرض على GitHub