Skip to content

docs(agents): delete two orphaned docs, recover their rationale (PP-22e4) - #1799

Open
timothyfroehlich wants to merge 1 commit into
mainfrom
docs/sweep-01-orphan-docs-PP-22e4
Open

docs(agents): delete two orphaned docs, recover their rationale (PP-22e4)#1799
timothyfroehlich wants to merge 1 commit into
mainfrom
docs/sweep-01-orphan-docs-PP-22e4

Conversation

@timothyfroehlich

Copy link
Copy Markdown
Owner

Summary

Sweep PR 1 of the PP-22e4 deletion sweep. +4 −362.

Deletes docs/ESLINT_RULES.md (328 lines) and docs/CI_WORKFLOW_SETUP.md (34). Both had zero inbound references anywhere in the repo (rg --hidden, bare stem) and both were dormant — last substantive touches 2026-06-06 and 2026-01-07.

What each carried

CI_WORKFLOW_SETUP.md — no decision at all. Line 4 says outright "The actual configuration lives in .github/workflows/ci.yml", then spends 30 lines describing it. Textbook cached fact.

ESLINT_RULES.md — substantially stale, but held two real decisions. It documented none of react-hooks, jsx-a11y, better-tailwindcss/no-restricted-classes, pinpoint/no-side-effects-in-transaction, the e2e blocks, or the scripts/** globals block; its "Last Updated: November 10, 2025" header predates all of them.

But eslint.config.mjs's test block has three bare rule disables, and this doc was the only place their reasons were written down. Two could not be re-derived from the config, so they're moved verbatim rather than lost — that's the entire +4:

  • no-unnecessary-conditiontsconfig.tests.json extends only tsconfig.base.json, so noUncheckedIndexedAccess is unset and defensive index checks read as "unnecessary" to the rule. Verified with tsc --showConfig: tsconfig.app.json and e2e/tsconfig.json both extend @tsconfig/strictest and set it true; tsconfig.tests.json does not.
  • no-restricted-imports — tests genuinely import across the boundary (scripts/lib/db-target.mjs, eslint-rules/, e2e/support/cleanup), and tsconfig.base.json maps only ~/ and @/ to src/, so there is no alias route to those directories. The override is forced, not lazy.

Dropped deliberately

  • The doc's "prefer warnings over errors for new rules" policy — contradicted by every recent addition; exhaustive-deps, jsx-a11y, and no-side-effects-in-transaction all landed at error.
  • The no-undef rationale — it's the documented typescript-eslint upstream recommendation, re-derivable from outside the repo.

Review note

This ran through the sweep's cold-read gate (fixed brief, diff-only input) before push, and it caught a real error of mine: my first pass concluded the noUncheckedIndexedAccess claim was false and was going to delete it. I had checked tsconfig.json rather than tsconfig.app.json, which is the config typecheck actually uses. The doc was right; I was wrong. Both rationales are in this PR because of that catch.

Follow-up

PP-8xk7 — the e2e block disables no-unnecessary-condition too, where this reason does not apply, since e2e/tsconfig.json does extend strictest. Either copy-paste or an unrecorded reason.

Test Plan

pnpm run check — green (218 test files, 2004 vitest, 456 pytest). Lint still passes with the new comments.

Related Issues

PP-22e4. Follow-up: PP-8xk7.

…2e4)

Sweep PR 1. +4 -362.

docs/ESLINT_RULES.md (328 lines) and docs/CI_WORKFLOW_SETUP.md (34) both
had ZERO inbound references anywhere in the repo, and both were dormant
(last substantive touches 2026-06-06 and 2026-01-07).

CI_WORKFLOW_SETUP.md carried no decision: line 4 says "the actual
configuration lives in .github/workflows/ci.yml", then describes it.

ESLINT_RULES.md was substantially stale — it documented none of
react-hooks, jsx-a11y, better-tailwindcss/no-restricted-classes,
pinpoint/no-side-effects-in-transaction, the e2e blocks, or the
scripts/** globals block. But it did hold rationale for three bare rule
disables in eslint.config.mjs's test block, and two of those could not be
re-derived from the config. Both are moved VERBATIM rather than lost:

- no-unnecessary-condition: tsconfig.tests.json extends only
  tsconfig.base.json, so noUncheckedIndexedAccess is unset and defensive
  index checks read as "unnecessary". Verified with tsc --showConfig:
  tsconfig.app.json and e2e/tsconfig.json both extend @tsconfig/strictest
  and set it true; tsconfig.tests.json does not.
- no-restricted-imports: tests genuinely import across the boundary
  (scripts/lib, eslint-rules/, e2e/support), and tsconfig paths map only
  ~/ and @/ to src/, so there is no alias route to those directories.

Dropped deliberately: the doc's "prefer warnings over errors for new
rules" policy, contradicted by every recent addition (exhaustive-deps,
jsx-a11y, no-side-effects-in-transaction all landed at "error"); and the
no-undef rationale, which is the documented typescript-eslint upstream
recommendation.

Follow-up PP-8xk7: the e2e block disables no-unnecessary-condition too,
where this reason does NOT apply (e2e/tsconfig.json does extend
strictest).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VsqPbD3ik51G9xwpAHqmVL
@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pin-point Ready Ready Preview Aug 1, 2026 8:45pm

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants