From 2ca09f03b3862afd971a2faaade2912caf5f4bf0 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 25 Aug 2026 00:09:30 +0200 Subject: [PATCH] feat(skills): add i8-quality-high i8-quality drives `make quality`; the gate that has to be green before a pull request is `make quality-high`, which appends every lint target and runs about four times as long. Nothing routed an operator there. The skill leaves the fix loop to test-fix and pins only what differs: the run goes to the background with its output teed to /tmp so the operator gets a tail -f line, nothing else may run beside it because the wall-clock budgets fail under self-made load, and the verdict comes from the two per-target tables rather than the pipe exit code, which is unreliable here. docs and autoformat write to the tree, so an unexpected diff after a pass is a finding. Suppression is not a fix: a lint hit is resolved by deleting the offending construct, and any nocheck marker needs the operator's explicit approval. The cheatsheet row is not decoration - test_cheatsheet_is_skill_index requires every i8- skill directory to appear in that table. Co-Authored-By: Claude Opus 5 (1M context) --- docs/contributing/tools/agents/cheatsheet.md | 1 + skills/i8-quality-high/SKILL.md | 54 ++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 skills/i8-quality-high/SKILL.md diff --git a/docs/contributing/tools/agents/cheatsheet.md b/docs/contributing/tools/agents/cheatsheet.md index a377c5d4a1..2456f72e73 100644 --- a/docs/contributing/tools/agents/cheatsheet.md +++ b/docs/contributing/tools/agents/cheatsheet.md @@ -25,6 +25,7 @@ from its procedure file. Run `make install-skills` to (re)install them. | Writing or updating a Playwright spec for a `web-*` role | `i8-iterate-playwright` | | Running or validating tests for a specific scope | `i8-test` | | Running the quality gate (`make quality`) to green | `i8-quality` | +| Running the full gate (`make quality-high`: quality plus every lint) to green | `i8-quality-high` | | Cleaning up code, docs, or roles after a change | `i8-refactor` | | A GitHub Actions / CI run failed and needs triage | `triage` | | A local deploy is failing on the host | `i8-debug-local` | diff --git a/skills/i8-quality-high/SKILL.md b/skills/i8-quality-high/SKILL.md new file mode 100644 index 0000000000..110c5f9290 --- /dev/null +++ b/skills/i8-quality-high/SKILL.md @@ -0,0 +1,54 @@ +--- +name: i8-quality-high +description: > + Run the full quality gate (make quality-high: docs, autoformat, the whole test + suite, then every lint target) in a loop until it is green end to end. Trigger + on /i8-quality-high or when the operator asks for the high gate before a + commit, a pull request, or a release. Infinito.Nexus specific. +--- + +Follow the instructions from AGENTS.md, then drive `make quality-high` to green. +It is `make quality` (docs, autoformat, test) followed by `make lint` — every +lint target, so budget around ten minutes per pass. + +The fix loop and its forbidden shortcuts are the `test-fix` skill's; this skill +only pins the command and how to read its result. + +## Running a pass + +Run it in the background, streaming the full output to a log, and give the +operator the literal command to follow it: + + make quality-high 2>&1 | tee /tmp/make-quality-high-.log + tail -f /tmp/make-quality-high-.log + +Increment `` per pass so runs stay comparable. Nothing else may run while it +does — no other test, script, or agent. The wall-clock budgets fail under +self-made load, and a stale `.ansible/.lock` from a parallel run breaks +ansible-lint silently. + +## Reading the result + +Judge by the two `📊 per-target wall-clock` tables (one for the test phase, one +for lint) and any `FAILED TARGETS:` line — never by the pipe exit code, which is +unreliable here. `docs` and `autoformat` write to the tree: run `git status` +after every pass and treat an unexpected diff as a finding, not as noise. + +## Fixing + +Every failure is fixed at its root. A lint hit is resolved by deleting the +offending construct, not by a `nocheck` marker, a loosened rule, or a target +dropped from the gate — any suppression needs the operator's explicit approval +and a stated reason. + +Re-run the specific failing target first (`make test-unit`, `make lint-ansible`, +…), then the full `make quality-high` before declaring the gate green: a fix that +breaks a neighbouring target is not a fix. + +## Working mode + +Begin by clarifying every open requirement with the `active-listening` skill, +escalating any root-cause question you are not ~99% sure of to the `dialectic` +skill, then work under the `robot` skill until both phases pass clean. Report +calibrated confidence per the `confidence` skill. Do not commit unless the +operator asked for a commit.