@rtorcato/repo-tooling 3.38.2 → 3.38.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -0
- package/dist/cli/commands/fix.js +4 -2
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -98,6 +98,8 @@ npx @rtorcato/repo-tooling fix claude-skills --yes --json
|
|
|
98
98
|
|
|
99
99
|
Fixers marked `explicitOnly` are exempt from `fix` all *and* from `fix --yes` — they only run when named as the target. Today that is `claude-skills`, the one fixer whose blast radius is outside the repo.
|
|
100
100
|
|
|
101
|
+
The same goes for every `optional-missing` finding: a bulk `fix` records it `skipped`, because optional tools are often mutually exclusive (Biome / ESLint / Prettier / Oxlint, semantic-release / Changesets / Release Please) and installing them all is never the intent (#630). Name the one you want — `fix editorconfig --yes`.
|
|
102
|
+
|
|
101
103
|
A fixer may also **refuse** — the target file holds something the generator cannot reproduce, so overwriting would destroy it. Today that is `dependabot` against a config with repo-local `ignore:` rules (#422), and `biome` against a `biome.json` that does not parse, whose settings cannot be merged (#587). A targeted `fix dependabot` then exits 1 with `error: dependabot-ignore-rules`; a bulk `fix --yes` records it `skipped` and carries on with the rest. Neither `--yes` nor `--json` overrides it — resolve the named rules by hand and re-run.
|
|
102
104
|
|
|
103
105
|
## Source-of-truth files in the repo
|
package/dist/cli/commands/fix.js
CHANGED
|
@@ -502,8 +502,10 @@ export async function fixCommand(target, options = {}) {
|
|
|
502
502
|
if (!silent) {
|
|
503
503
|
console.log(` ${chalk.bold(result.check)} (${result.status}) → ${fixer.target}`);
|
|
504
504
|
}
|
|
505
|
-
// Opt-in only — `--yes` must not sweep in a fixer that writes outside the repo
|
|
506
|
-
|
|
505
|
+
// Opt-in only — `--yes` must not sweep in a fixer that writes outside the repo,
|
|
506
|
+
// nor an optional tool: optional alternatives (Biome/ESLint/Prettier/Oxlint,
|
|
507
|
+
// semantic-release/Changesets/Release Please) are mutually exclusive (#630).
|
|
508
|
+
if (fixer.explicitOnly || result.status === 'optional-missing') {
|
|
507
509
|
actions.push(recordFor(fixer.target, result.check, result.status, 'skipped', []));
|
|
508
510
|
if (!silent) {
|
|
509
511
|
console.log(chalk.gray(` skipped — run \`fix ${fixer.target}\` explicitly`));
|
package/package.json
CHANGED