Add OpenSpec proposal for provider ignore files#157
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 14 minutes and 8 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThis PR introduces comprehensive specification and design documentation for a new ChangesProvider Ignore Files Feature Specification
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (1)
openspec/changes/add-provider-ignore-files/specs/ignore-provider-templates/spec.md (1)
4-4: ⚡ Quick winAvoid hardcoding provider count in normative requirement text.
“all 20 providers” is likely to drift. Prefer “all supported providers” and keep concrete counts in non-normative docs/checklists.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@openspec/changes/add-provider-ignore-files/specs/ignore-provider-templates/spec.md` at line 4, Replace the hardcoded provider count in the normative requirement: update the sentence that references "all 20 providers" to say "all supported providers" instead, keeping the rest of the requirement intact (i.e., the system SHALL provide `ignore.hbs` Handlebars templates for all supported providers and templates SHALL render patterns as newline-separated entries); ensure the change is applied to the `ignore.hbs` templates requirement text in the spec so counts remain only in non-normative docs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@openspec/changes/add-provider-ignore-files/design.md`:
- Line 31: The config currently allows two ambiguous shapes for per-provider
ignores ([providers.<name>.ignore.variables] vs a dedicated patterns field)
without deterministic precedence; decide and document a single canonical
behavior (e.g., prefer explicit patterns field over .ignore.variables, or treat
coexistence as an error), update the schema to forbid ambiguous combinations,
and implement/adjust the parser and validation logic (the code that parses
[ignore] and providers.<name>.ignore.*) to enforce that rule and return a clear
validation error when both forms are supplied or to merge them deterministically
if you choose merging; update docs to state the chosen precedence and expected
shape.
In `@openspec/changes/add-provider-ignore-files/specs/ignore-feature/spec.md`:
- Around line 41-99: Add normative requirements and scenarios to specify
per-provider ignore overrides: define the shape of [providers.<name>.ignore]
(supports an optional patterns = [..] array and optional disabled = true/false),
define merge/precedence semantics (when provider.patterns is present the deploy
pipeline SHALL merge global [ignore].patterns followed by provider.patterns,
treating provider entries as additional and de-duplicating by exact match; if
provider.patterns is an empty array that means “no provider-specific patterns”
and still results in only global patterns unless disabled is true; when disabled
= true the provider SHALL not write any ignore file regardless of global or
provider.patterns), and add concrete scenarios (provider supplies patterns,
provider supplies empty patterns, provider supplies disabled = true, provider
omits ignore section) to spec.md to make behavior deterministic for implementers
and tests.
In
`@openspec/changes/add-provider-ignore-files/specs/ignore-init-scaffold/spec.md`:
- Around line 36-39: Add an explicit scenario to the init spec that defines flag
precedence when both `--no-ignore` and `--features ignore` are passed (e.g.,
"WHEN `dotagents init --no-ignore --features ignore` is run" and "THEN no ignore
patterns file SHALL be created"), clearly stating that `--no-ignore` takes
precedence; also duplicate this precedence scenario for the alternate location
that describes `--features ignore` (the second scenario referenced) so both
places unambiguously define the behavior.
In
`@openspec/changes/add-provider-ignore-files/specs/ignore-provider-templates/spec.md`:
- Around line 15-20: The spec currently only asserts the `template` field for
the opencode scenario; update the acceptance criteria so every provider test
checks both `providers.<slug>.ignore.template` and
`providers.<slug>.ignore.target` when parsing provider.toml. Concretely, add a
generic scenario or add per-provider "SHALL include `[providers.<slug>.ignore]`
with `template` pointing to <expected>`" assertions alongside the existing
`target` checks (reference the `providers.<slug>.ignore`, `template`, `target`,
and `provider.toml` symbols) so the requirement "must include both `template`
and `target`" is validated for all providers.
In `@openspec/changes/add-provider-ignore-files/tasks.md`:
- Around line 40-41: Add an explicit checklist item (e.g., new step "3.21 Update
provider registry checksums") to Section 3 so maintainers update provider
registry checksums whenever adding ignore.hbs or changing provider config
entries; specifically mention updating provider.toml via the
[providers.<slug>.ignore] section and recalculating/publishing the provider
registry checksum so metadata validation passes after template changes.
---
Nitpick comments:
In
`@openspec/changes/add-provider-ignore-files/specs/ignore-provider-templates/spec.md`:
- Line 4: Replace the hardcoded provider count in the normative requirement:
update the sentence that references "all 20 providers" to say "all supported
providers" instead, keeping the rest of the requirement intact (i.e., the system
SHALL provide `ignore.hbs` Handlebars templates for all supported providers and
templates SHALL render patterns as newline-separated entries); ensure the change
is applied to the `ignore.hbs` templates requirement text in the spec so counts
remain only in non-normative docs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9daba757-b644-484d-92f6-7da133544021
📒 Files selected for processing (8)
openspec/changes/add-provider-ignore-files/.openspec.yamlopenspec/changes/add-provider-ignore-files/design.mdopenspec/changes/add-provider-ignore-files/proposal.mdopenspec/changes/add-provider-ignore-files/specs/deploy-pipeline/spec.mdopenspec/changes/add-provider-ignore-files/specs/ignore-feature/spec.mdopenspec/changes/add-provider-ignore-files/specs/ignore-init-scaffold/spec.mdopenspec/changes/add-provider-ignore-files/specs/ignore-provider-templates/spec.mdopenspec/changes/add-provider-ignore-files/tasks.md
- Replace [ignore].patterns config table with .dotagents/.agentignore file - Limit per-provider ignore config to disabled=true only - Remove --no-ignore init flag; keep --features ignore - Rename init scaffold file from .dotagents/ignore to .dotagents/.agentignore - Use "supported providers" instead of "20 providers" throughout specs
Summary by CodeRabbit