Rewrite the front's rules and ADR 0011 as the owner decided #414

Closed
opened 2026-10-15 12:33:45 +00:00 by root · 6 comments
root commented 2026-10-15 12:33:45 +00:00 (Migrated from gitlab.core-project.space)

Parent

#408

What to build

The front's rules say what the owner decided, and lint enforces them: one page file per route, routes may import what they configure, lib/ may hold reads several verticals share, presentational components/ keep their boundary, and a TanStack Form form or field object may be passed to a component. This is the dedicated rule change CLAUDE.md requires; no app code changes.

Seam: S1 — the front lint plugin through its test.

Acceptance criteria

  • The front's CODING_STANDARDS.md carries the lint and review rules listed in #408's Implementation Decisions.
  • front/view-is-composition is deleted with its test cases.
  • The restricted-import blocks: components/ still reject Query, zustand, oRPC, hooks and services; page files may use them; @/lib/form is allowed in components/; routes may import a vertical's page files, services and exported constants.
  • Lint-plugin tests cover a page importing Query (passes), a component importing Query (fails), a route importing a sibling's internal file (fails).
  • ADR 0011 is amended or superseded, and its row in the ADR index follows.
  • Lint stays green on the current code, which still uses .view.tsx/.ui.tsx until the next ticket.
## Parent #408 ## What to build The front's rules say what the owner decided, and lint enforces them: one page file per route, routes may import what they configure, `lib/` may hold reads several verticals share, presentational `components/` keep their boundary, and a TanStack Form `form` or `field` object may be passed to a component. This is the dedicated rule change `CLAUDE.md` requires; no app code changes. Seam: S1 — the front lint plugin through its test. ## Acceptance criteria - [ ] The front's `CODING_STANDARDS.md` carries the lint and review rules listed in #408's Implementation Decisions. - [ ] `front/view-is-composition` is deleted with its test cases. - [ ] The restricted-import blocks: `components/` still reject Query, zustand, oRPC, hooks and services; page files may use them; `@/lib/form` is allowed in `components/`; routes may import a vertical's page files, services and exported constants. - [ ] Lint-plugin tests cover a page importing Query (passes), a component importing Query (fails), a route importing a sibling's internal file (fails). - [ ] ADR 0011 is amended or superseded, and its row in the ADR index follows. - [ ] Lint stays green on the current code, which still uses `.view.tsx`/`.ui.tsx` until the next ticket.
root commented 2026-10-15 12:33:45 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #408

marked this issue as related to #408
root commented 2026-10-15 12:33:53 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #415

mentioned in issue #415
root commented 2026-10-15 12:33:54 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #415

marked this issue as related to #415
root commented 2026-10-15 13:16:57 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 0818df5e7a

mentioned in commit 0818df5e7ae6f40d859114c9cbb5ff23be205ece
root commented 2026-10-15 13:17:12 +00:00 (Migrated from gitlab.core-project.space)

mentioned in merge request !534

mentioned in merge request !534
root commented 2026-10-15 14:14:07 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit a37c5c0f71

mentioned in commit a37c5c0f71db9869d02b4146348737a9bce32341
root (Migrated from gitlab.core-project.space) closed this issue 2026-10-15 15:17:48 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
amaurycoudr/chess-project#414
No description provided.