Repository navigation
Add Claude.MD - #3
Merged
Merged
Conversation
Document the codebase structure, tech stack, development workflows, API endpoints, key patterns, and conventions for AI assistants working with this power grid contingency analysis application. https://claude.ai/code/session_01Y9w9cky5CKAqLnfXneCpon
…VU4j Add CLAUDE.md documentation for ExpertAssist project
marota
added a commit
that referenced
this pull request
Mar 29, 2026
4 of 6 tasks
marota
pushed a commit
that referenced
this pull request
May 2, 2026
Adds two layers of regression guards covering all five
recommendations from `docs/proposals/ui-design-critique.md`:
1. Seven new static invariants in `scripts/check_invariants.py`
(Layer 4):
- notices_panel_in_sidebar — AppSidebar mounts <NoticesPanel>
- action_feed_no_dismissable_warning_state — ActionFeed lost
setShowActionDictWarning / setShowRecommenderWarning
- overload_panel_uses_monitoring_hint — OverloadPanel exposes
`monitoringHint`, not the legacy banner props
- diagram_legend_on_each_diagram_tab — VisualizationPanel wires
<DiagramLegend tabId="n|n-1|action">
- nad_overload_halo_capped_at_zoom — App.css caps overload halo
stroke at 24px on detail-zoom via vector-effect: non-scaling-
stroke
- design_token_gate_blocks_inline_hex — FRONTEND_HEX_LITERAL_MAX
stays at 0
- action_card_progressive_disclosure_gated_by_isViewing —
ActionCard renders the disclosure subtree under {isViewing &&
Total: 10 → 17 invariants. All green.
2. New `frontend/src/uxConsistency.test.tsx` (19 specs) — runtime
contract checks rendering the real components rather than
mocks. One describe block per recommendation:
- #1 design tokens: scans inline `style` attributes for raw hex
literals and asserts none leak from OverloadPanel / AppSidebar
- #2 progressive disclosure: ActionCard at-rest hides the
disclosure subtree; isViewing=true reveals it
- #3 halo cap: re-asserts the App.css rule (cheaper feedback
loop than the static script)
- #4 warning tier: OverloadPanel without monitoringHint shows
no inline yellow banner; ActionFeed at default state has no
warning-styled descendant; AppSidebar surfaces the
<NoticesPanel> pill iff notices.length > 0
- #5 diagram legend: each tab in VisualizationPanel mounts a
legend pill when its SVG is loaded, omits it when absent
- source-text invariants: cross-checks the file-level
contracts so a refactor that drops a recommendation fails
this file too
1182 → 1201 specs. All passing; ESLint clean; code-quality
gate clean.
https://claude.ai/code/session_01EYXsLY6hKRncRxj3KTHERk
marota
pushed a commit
that referenced
this pull request
Jun 18, 2026
Target #3 from the code-quality review. - Annotate the 26 void backend functions with `-> None` (libcst codemod; mypy verifies each — still 0 errors). Missing-return count 112 → 86. - Reporter: new `functions_annotatable` / `functions_missing_return` metrics + a return-annotation coverage line (now 339/425 = 80%). - Gate: ratchet missing-return at 86 — new functions must be annotated, and mypy gates that the annotation is correct. The 80 value-returning + 6 generator functions are the documented ratchet-down target. https://claude.ai/code/session_0185GQf52QDpMM4zRDmGVN8X
marota
pushed a commit
that referenced
this pull request
Jun 18, 2026
Continues the §19 #3 ratchet-down with concrete, mypy-verified types: - Conservative AST codemod for shape-clear returns (6 tuple, 4 generators → Iterator[Any], 2 dict; widened to `| None` on bare-return paths). - Hand-built pass for unambiguous literal returns (network_service list/dict getters, deltas._signed → float, _load_layout_coords → dict, is_renewable predicates → bool). Tried infer-types but reverted it: 75 annotations but 37 mypy errors (wrong `-> None`, over-broad unions breaking unpacking) and untrustworthy "passing" ones. Conservative route is correct-by-construction. Stops at 60 deliberately: the rest delegate to untyped pypowsybl / recommender helpers (honest type Any). Padding `-> Any` would game the coverage metric without mypy verifying anything; the real path is typing the helpers bottom-up. mypy 0, ruff clean, offline suite byte-identical (624 passed). See §21. https://claude.ai/code/session_0185GQf52QDpMM4zRDmGVN8X
marota
pushed a commit
that referenced
this pull request
Jul 3, 2026
PR #3 targets the `claude/sld-voltage-navigation-mypy-1zm3om` working branch, but the Code Quality / Tests / Parity workflows only fired on `pull_request` events whose base was `main`, so no CI ran for it. Broaden each `pull_request` trigger to `branches: ['**']` so CI runs on PRs targeting any branch. `push` stays restricted to main, and the HuggingFace deploy workflow is left untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aLzZJp3MP3qYBr1WKGRC6
marota
pushed a commit
that referenced
this pull request
Jul 3, 2026
Empty commit to fire a pull_request synchronize event now that repo-level GitHub Actions is enabled, so Code Quality / Tests / Parity run on PR #3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aLzZJp3MP3qYBr1WKGRC6
marota
pushed a commit
that referenced
this pull request
Jul 3, 2026
A pull_request whose base is not `main` is matched against the base branch's own trigger (still main-only), so broadening the head branch's pull_request filter alone did not fire CI for PR #3. Add the `claude/**` working branches to the push trigger so pushes to this branch get commit-level checks that surface on the PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aLzZJp3MP3qYBr1WKGRC6
marota
pushed a commit
that referenced
this pull request
Jul 3, 2026
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aLzZJp3MP3qYBr1WKGRC6
marota
pushed a commit
that referenced
this pull request
Jul 3, 2026
The pull_request `branches: ['**']` change (read from the PR head branch's workflow) is confirmed to trigger CI for PR #3, so the `claude/**` push trigger is no longer needed and only produced duplicate runs. Restore push to `main`-only; keep the broadened pull_request filter. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aLzZJp3MP3qYBr1WKGRC6
marota
added a commit
that referenced
this pull request
Jul 3, 2026
…xht90 Wrap long feeder names at substation extremities (Issue 1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.