import featureMustHaveManifest from "./rules/feature-must-have-manifest.js"; import usecaseMustHaveTestFile from "./rules/usecase-must-have-test-file.js"; import requiredCoresInstalled from "./rules/required-cores-installed.js"; import noUndeclaredEventPublish from "./rules/no-undeclared-event-publish.js"; import noUndeclaredAudit from "./rules/no-undeclared-audit.js"; import noUndeclaredAnalyticsEvent from "./rules/no-undeclared-analytics-event.js"; import usecaseMustBeWired from "./rules/usecase-must-be-wired.js"; import componentMustHaveStory from "./rules/component-must-have-story.js"; import componentMustHaveTest from "./rules/component-must-have-test.js"; import atomicTierImportDirection from "./rules/atomic-tier-import-direction.js"; import piiDeclarationMustBeComplete from "./rules/pii-declaration-must-be-complete.js"; import noUndeclaredConsentCheck from "./rules/no-undeclared-consent-check.js"; import noUndeclaredRateLimit from "./rules/no-undeclared-rate-limit.js"; import entityMustHaveTest from "./rules/entity-must-have-test.js"; import noRelativeParentImportInTests from "./rules/no-relative-parent-import-in-tests.js"; /** * The `@repo/core-eslint` conformance plugin. Aggregates custom rules that * enforce feature-conformance contracts (manifest presence, sibling tests, * required-cores ↔ workspace consistency). * * Registered as the `conformance` plugin in flat config: * * import conformancePlugin from "@repo/core-eslint/plugin"; * export default [ * { plugins: { conformance: conformancePlugin } }, * { rules: { "conformance/feature-must-have-manifest": ["warn", { repoRoot: import.meta.dirname }] } }, * ]; */ const plugin = { meta: { name: "conformance", version: "0.4.0" }, rules: { "feature-must-have-manifest": featureMustHaveManifest, "usecase-must-have-test-file": usecaseMustHaveTestFile, "required-cores-installed": requiredCoresInstalled, "no-undeclared-event-publish": noUndeclaredEventPublish, "no-undeclared-audit": noUndeclaredAudit, "no-undeclared-analytics-event": noUndeclaredAnalyticsEvent, "usecase-must-be-wired": usecaseMustBeWired, "component-must-have-story": componentMustHaveStory, "component-must-have-test": componentMustHaveTest, "atomic-tier-import-direction": atomicTierImportDirection, "pii-declaration-must-be-complete": piiDeclarationMustBeComplete, "no-undeclared-consent-check": noUndeclaredConsentCheck, "no-undeclared-rate-limit": noUndeclaredRateLimit, "entity-must-have-test": entityMustHaveTest, "no-relative-parent-import-in-tests": noRelativeParentImportInTests, }, }; export default plugin;