refactor(docs): strip residual Phase/Plan setup-history references

Final sweep for setup-process bookkeeping not caught by template-reset-v1.
ADRs drop Plan-N qualifiers; spec collapses the historical 11-phase
migration table; scaffolding guide drops "Phase added" column; comment
prefixes referencing R-numbers in test describes / eslint inline comments
are normalized. Architecture-level rule IDs (R40, R52, E0, J0, etc.) are
preserved where they serve as stable cross-references in ADRs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-13 10:28:31 +02:00
parent 318dc05b6e
commit 2edc76002a
13 changed files with 155 additions and 137 deletions

View File

@@ -13,7 +13,15 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
const repoRoot = path.resolve(__dirname, "..", "..");
export default [
{ ignores: ["dist/**", "node_modules/**", ".next/**", ".turbo/**", "storybook-static/**"] },
{
ignores: [
"dist/**",
"node_modules/**",
".next/**",
".turbo/**",
"storybook-static/**",
],
},
js.configs.recommended,
{
files: ["**/*.{mjs,cjs,js}", "**/*.config.{ts,tsx}"],
@@ -34,15 +42,9 @@ export default [
rules: {
// Structural conformance rules (milestone iii.a).
// All 5 features now have manifests; promoted to ERROR.
"conformance/feature-must-have-manifest": [
"error",
{ repoRoot },
],
"conformance/feature-must-have-manifest": ["error", { repoRoot }],
"conformance/usecase-must-have-test-file": "error",
"conformance/required-cores-installed": [
"error",
{ repoRoot },
],
"conformance/required-cores-installed": ["error", { repoRoot }],
"conformance/no-undeclared-event-publish": ["warn", { repoRoot }],
"conformance/no-undeclared-audit": ["warn", { repoRoot }],
"conformance/component-must-have-story": "warn",
@@ -83,7 +85,10 @@ export default [
{
default: "disallow",
rules: [
{ from: "app", allow: ["app", "core", "core-composition", "feature", "tooling"] },
{
from: "app",
allow: ["app", "core", "core-composition", "feature", "tooling"],
},
{ from: "feature", allow: ["core", "tooling"] },
{ from: "core", allow: ["core", "tooling"] },
{ from: "core-composition", allow: ["core", "feature", "tooling"] },
@@ -93,7 +98,7 @@ export default [
],
},
},
// R40 — block direct @sentry/* imports outside the allowlisted instrumentation paths
// Block direct @sentry/* imports outside the allowlisted instrumentation paths.
{
files: ["**/*.{ts,tsx,mjs,cjs,js}"],
rules: {
@@ -104,19 +109,17 @@ export default [
{
group: ["@sentry/*"],
message:
"Import from @repo/core-shared/instrumentation instead — feature packages must not depend on Sentry directly (R40).",
"Import from @repo/core-shared/instrumentation instead — feature packages must not depend on Sentry directly.",
},
],
},
],
},
},
// R40 allowlist — the only paths permitted to import @sentry/*.
// After the OTel migration (ADR-017): server-side Sentry SDK usage is limited to
// the OTel bridge + browser/client init files. The @sentry/* ESLint restriction
// stays; the allowlist is narrowed from the original "**/instrumentation/sentry/**".
// Patterns are double-star prefixed so they match whether eslint runs from
// the repo root or from inside a sub-package.
// Allowlist — the only paths permitted to import @sentry/*.
// Per ADR-017, server-side Sentry SDK usage is limited to the OTel bridge
// and browser/client init files. Patterns are double-star prefixed so they
// match whether eslint runs from the repo root or from inside a sub-package.
{
files: [
// OTel bridge — the only server-side file that may import @sentry/opentelemetry
@@ -152,7 +155,7 @@ export default [
"no-restricted-imports": "off",
},
},
// R52 — OTel SDK packages (@opentelemetry/sdk-*, @opentelemetry/resources,
// OTel SDK packages (@opentelemetry/sdk-*, @opentelemetry/resources,
// @opentelemetry/semantic-conventions, @opentelemetry/instrumentation-*,
// @sentry/opentelemetry) are restricted to core-shared/instrumentation/otel/
// and app-level init paths.