-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
Introduce a first-class "permissive start" mode and progressive ratcheting workflow to avoid CI breakage and improve onboarding.
Motivation
Current strict-by-default approach overwhelms teams (hundreds of violations) and breaks CI. We want:
- CI green on day 1
- Fix one category at a time
- Lock progress with ratchet
- Repeat
Scope
- Permissive start (generator + preset)
- Init flag:
--permissive/--permissive-start - Generate flat config with measure-only rules (warn, not error)
- Include Jest/browser overrides to remove no-undef noise
- Export
configs['permissive-start']from the plugin for flat-config users
- CI-safe lint + ratchet gate
- package.json scripts (generated):
lint:eslint .lint:ci:eslint . || trueratchet:eslint-plugin-ai-code-snifftest ratchet
- GitHub Actions snippet in docs: run lint:ci, then ratchet (only ratchet can fail)
- Ratchet DX improvements
- Better fail message with: rule, baseline, current, first N new occurrences (file:line), and "how to fix" tip
- Add
--unlock=<rule>path documented in message - Script alias:
ratchet:explainto print baseline JSON
- Issue creation hygiene (optional, separate PR if large)
create-issues --phase=1|2|3to avoid dumping all issues at once- Priority labels in titles:
[P0-Quick-Win],[P1-High-Impact], etc. START HEREissue or TECH-DEBT.md scaffold with weekly trend
Acceptance Criteria
init --permissivegenerates permissive ESLint config (warn-only) + Jest/browser overrides- Plugin exports
configs['permissive-start'] - Generator adds
lint:ci+ratchetscripts and docs snippet - Ratchet prints actionable failure messaging (with example and unlock hint)
Non-Goals
- Changing default behavior for existing strict users
- Enforcing env-based severity switching (prefer ratchet gating)
Notes
This enables: CI stays green, teams fix one rule at a time, and ratchet prevents backsliding.
Metadata
Metadata
Assignees
Labels
No labels