Source profileQuality 91/100

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.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/kensaurus/cursor-kenji --skill "skills/housekeep-gates"
    Safe inspection promptEditorial

    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

    1. 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
    2. 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.
    3. 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
    4. 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
    5. 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

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars9SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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

    SkillOwns
    housekeep-gates (this)Consolidate / delete / wire the aggregator
    audit-gate-logicRead-only map — bypass, ratchets, archaeology
    audit-cicdPipeline cost, speed, storage
    workflow-quality-gateRuns the pre-release sweep
    enhance-agent-guardrailsInstalls new guard classes, not accreted-gate cleanup
    workflow-green-repoMake the repo green — does not redesign the gate graph
    housekeep-backlogParked-work register — not CI gates

    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

    Worked example

    Observe: two lint jobs; old lint.yml is required; new ci.yml lint is not. paths: skips .github/**. Interpret: retiring lint.yml without 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 — that needs: 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_group to the workflow triggers and keep check names identical across pull_request and merge_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:

    1. 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.
    2. Wire the winner into the aggregator's needs:.
    3. 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.
    4. 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_group parity 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]

    1. Map confirmed — no "obvious duplicate" deleted unmapped
    2. Skipped ≠ success — aggregator checks dependency results
    3. Losers deleted — not disabled
    4. Probes red — violation + skip-path
    5. Branch protection — only after explicit confirmation

    Output format

    1. Before/after map — old gates → new structure (aggregator + needs list)
    2. Per-cluster log — winner | value ported from losers | losers deleted
    3. Ratchet policy — metric | enforcement point | floor behavior | reset rule
    4. 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

    Computed 10045,960

    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

    Computed 10029,236

    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.

    Computed 10025,136

    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

    Computed 1005,277

    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