kensaurus/cursor-kenji/skills/housekeep-gates/SKILL.md
housekeep-gates
Apply-now consolidation of accreted CI gates, ratchets, and hooks into one aggregator required check. Use after audit-gate-logic, or when "clean up our CI checks", "we have three lint jobs", "make one quality gate". Audit-only → audit-gate-logic. Rule content → audit-doctrine. Pipeline cost → audit-cicd.
- Source repository stars
- 9
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-08-21
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
Degree of freedom: MIXED — T1 is the priority. Mapping and winner confirmation [HIGH freedom]; aggregator needs: + skip-fail, loser deletion, branch-protection, and Phase 4 probes [LOW freedom — run exactly]. Net enforcement strictly ≥ before.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/kensaurus/cursor-kenji --skill "skills/housekeep-gates"Inspect the Agent Skill "housekeep-gates" from https://github.com/kensaurus/cursor-kenji/blob/28a0bd8403c950f58ed063d47a858ee3493b0038/skills/housekeep-gates/SKILL.md at commit 28a0bd8403c950f58ed063d47a858ee3493b0038. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
How to reason
1. Observe — archaeology map: cluster, winner, loser, current required checks 2. Interpret — would deleting this loser drop unique coverage? 3. Classify — port-then-delete / keep / not-yet-mapped 4. Severity — deleting the only server-side-enforced gate is a regression
Observe — archaeology map: cluster, winner, loser, current required checksInterpret — would deleting this loser drop unique coverage?Classify — port-then-delete / keep / not-yet-mapped - 02
Phase 0 — Load the map (or make a quick one) [HIGH freedom; confirm before edits]
Consume the archaeology map from audit-gate-logic (duplicate clusters, winners, losers, ratchet findings). If none exists, run its Phase 0 + 2.5 first — never consolidate gates you have not mapped. Deleting an "obvious duplicate" that was the only server-side-enforced one weaken…
Consume the archaeology map from audit-gate-logic (duplicate clusters, winners, losers, ratchet findings). If none exists, run its Phase 0 + 2.5 first — never consolidate gates you have not mapped. Deleting an "obvious…Confirm which winners stand before touching anything. Branch-protection changes always get explicit confirmation. - 03
Phase 1 — Build the aggregator gate [LOW freedom — fail on failed or skipped]
Create (or adopt) the single-gate structure:
One job — conventionally gate / all-green — that needs: every realexplicit result check). Skipped-counts-as-success is the classicMake that job the only required status check; remove scattered - 04
Phase 2 — Consolidate per the map [LOW freedom — delete losers, do not disable]
For each duplicate cluster, in this order:
Port unique value from losers into the winner (a lint rule only theWire the winner into the aggregator's needs:.Retire the losers — delete the workflow/config, do not - 05
Phase 3 — Normalize the ratchets [HIGH freedom]
One baseline per metric. Competing thresholds (jest + codecov + a
One baseline per metric. Competing thresholds (jest + codecov + aAuto-tighten upward. Floors track reality (threshold rises as theResets are reviewed, separate acts. Baseline regeneration happens in
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 9 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- kensaurus/cursor-kenji
- Skill path
- skills/housekeep-gates/SKILL.md
- Commit
- 28a0bd8403c950f58ed063d47a858ee3493b0038
- License
- MIT
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
housekeep-gates — One required check, defined in code
Degree of freedom: MIXED — T1 is the priority. Mapping and winner
confirmation [HIGH freedom]; aggregator needs: + skip-fail, loser
deletion, branch-protection, and Phase 4 probes [LOW freedom — run exactly]. Net enforcement strictly ≥ before.
Apply-now. audit-gate-logic mapped the sprawl and named a winner per
duplicate cluster; this makes the repo match the map. Target state: one
required check in branch protection, backed by an aggregator job that
needs: every real gate — so "what blocks merge" has exactly one answer,
in one file.
Every retirement is proven safe before deletion. Never weaken enforcement while consolidating. Net enforcement strictly ≥ before.
This is the execution arm of audit-gate-logic, the same way
housekeep-design executes plan-uiux-unification.
This skill vs neighbors
| Skill | Owns |
|---|---|
| housekeep-gates (this) | Consolidate / delete / wire the aggregator |
audit-gate-logic | Read-only map — bypass, ratchets, archaeology |
audit-cicd | Pipeline cost, speed, storage |
workflow-quality-gate | Runs the pre-release sweep |
enhance-agent-guardrails | Installs new guard classes, not accreted-gate cleanup |
workflow-green-repo | Make the repo green — does not redesign the gate graph |
housekeep-backlog | Parked-work register — not CI gates |
How to reason
- Observe — archaeology map: cluster, winner, loser, current required checks
- Interpret — would deleting this loser drop unique coverage?
- Classify — port-then-delete / keep / not-yet-mapped
- Severity — deleting the only server-side-enforced gate is a regression
Worked example
Observe: two lint jobs; old
lint.ymlis required; newci.ymllint is not.paths:skips.github/**. Interpret: retiringlint.ymlwithout porting + aggregator skip-fail would let a workflow edit merge unlinted. Classify: port unique rules, wire winner, delete loser; probe the skip path. Probe: change matching the old skip filter → aggregator must go red, not skip-green.
Phase 0 — Load the map (or make a quick one) [HIGH freedom; confirm before edits]
Consume the archaeology map from audit-gate-logic (duplicate clusters,
winners, losers, ratchet findings). If none exists, run its Phase 0 + 2.5
first — never consolidate gates you have not mapped. Deleting an "obvious
duplicate" that was the only server-side-enforced one weakens the repo.
Confirm which winners stand before touching anything. Branch-protection changes always get explicit confirmation.
Phase 1 — Build the aggregator gate [LOW freedom — fail on failed or skipped]
Create (or adopt) the single-gate structure:
- One job — conventionally
gate/all-green— thatneeds:every real check (lint, typecheck, tests, build, and the audit jobs worth blocking on) and fails if any dependency failed or was skipped (if: always()- explicit result check). Skipped-counts-as-success is the classic aggregator bug.
- Make that job the only required status check; remove scattered
required entries. Enforcement moves from a settings list nobody audits
to a
needs:list that lives in code review. - If a merge queue is (or will be) in use: add
merge_groupto the workflow triggers and keep check names identical acrosspull_requestandmerge_group, or queued PRs wait on checks that never start. - Keep one fast always-runs job as the visible status link if the
aggregator's
needs:delays its appearance.
Phase 2 — Consolidate per the map [LOW freedom — delete losers, do not disable]
For each duplicate cluster, in this order:
- Port unique value from losers into the winner (a lint rule only the old config had, a test only the old workflow ran). Diff configs before deleting — retirement must not drop coverage.
- Wire the winner into the aggregator's
needs:. - Retire the losers — delete the workflow/config, do not disable-and-keep. A disabled gate is comprehension debt and resurrection bait for the next agent session.
- Extract shared logic into a reusable workflow or composite action when the same steps exist in 2+ places.
Also restore hook/CI parity: local pre-commit / pre-push hooks run the
same commands (ideally the same scripts) as CI's gate jobs — one
definition, two callers — so "passes locally" predicts "passes CI" and
nobody learns --no-verify.
Phase 3 — Normalize the ratchets [HIGH freedom]
- One baseline per metric. Competing thresholds (jest + codecov + a committed floor) collapse to one enforcement point; the rest read from it or die.
- Auto-tighten upward. Floors track reality (threshold rises as the metric improves, small flake tolerance) instead of sitting far below actual.
- Resets are reviewed, separate acts. Baseline regeneration happens in its own PR with the diff visible. CI should fail if a baseline file changes in the same PR as a metric regression, where the tooling allows expressing that.
- No silent exemption growth. Ignore-lists and inline-disable counts become ratcheted metrics themselves where feasible.
Phase 4 — Prove it [LOW freedom — run both probes]
- Deliberate-violation probe on a scratch branch: one violation per consolidated gate class (lint error, failing test, coverage drop, baseline edit bundled with a regression). Confirm the aggregator goes red and the PR is unmergeable. A consolidation is not done until each retired loser's job is demonstrably covered by the winner.
- Skip-path probe: push a change matching any
paths:filter that previously skipped gates; confirm the aggregator still reports (skipped-as-success is the failure mode to disprove). - Run a
workflow-green-repo-style full pass to confirm the repo is green under the new single gate.
Definition of Done
- Archaeology map confirmed with the user before edits
- Aggregator job exists, fails on any failed or skipped dependency, and is the only required check
-
merge_groupparity in place if a merge queue is used - Every cluster: unique value ported, winner wired, losers deleted (not disabled)
- Shared steps extracted to one reusable definition; hooks and CI call the same commands
- One baseline per metric; ratchets auto-tighten; resets require a separate reviewed PR; exemption lists cannot silently grow
- Deliberate-violation + skip-path probes red as expected; repo green under the new gate
- Net enforcement strictly ≥ before
Self-critique before claiming done [LOW freedom — do not skip]
- Map confirmed — no "obvious duplicate" deleted unmapped
- Skipped ≠ success — aggregator checks dependency results
- Losers deleted — not disabled
- Probes red — violation + skip-path
- Branch protection — only after explicit confirmation
Output format
- Before/after map — old gates → new structure (aggregator + needs list)
- Per-cluster log — winner | value ported from losers | losers deleted
- Ratchet policy — metric | enforcement point | floor behavior | reset rule
- Probe evidence — violation | gate response | pass/fail
Applied phase-by-phase. Pause for approval between phases when blast radius is large. Branch-protection changes always get explicit confirmation.
Frequently asked questions
What to verify before installation and use
What does the housekeep-gates source document cover?
Degree of freedom: MIXED — T1 is the priority. Mapping and winner confirmation [HIGH freedom]; aggregator needs: + skip-fail, loser deletion, branch-protection, and Phase 4 probes [LOW freedom — run exactly]. Net enforcement strictly ≥ before.
How do I install housekeep-gates?
The source record exposes this install command: npx skills add https://github.com/kensaurus/cursor-kenji --skill "skills/housekeep-gates". Inspect the command and pinned source before running it.
Alternatives
Compare before choosing
coreyhaines31/marketingskills
ab-testing
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
garrytan/gbrain
bulk-ingestion
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
migrate-vstest-to-mtp
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing