Skip to content

docs: add development-cycle retrospective (4 phases) - #119

Merged
marota merged 4 commits into
mainfrom
claude/document-dev-cycle-zA1cd
Apr 30, 2026
Merged

marota merged 4 commits into
mainfrom
claude/document-dev-cycle-zA1cd

Conversation

@marota

@marota marota commented Apr 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds docs/architecture/development-cycle.md, a chronological
retrospective of Co-Study4Grid reconstructed from git log
(358 commits, 28/03/2026 → 30/04/2026) and CHANGELOG.md
(0.5.0 → 0.6.5).

The doc is structured around the four phases of the project:

  1. Minimal end-to-end backbone (pre-0.5.0, ère « ExpertAssist »,
    PRs Refactor analysis API to split step1/step2 and add comprehensive tests #57–Rename ExpertAssist to Co-Study4Grid #65) — FastAPI + React/TS scaffolding, single-pass analysis,
    hand-maintained standalone mirror.
  2. Feature catalog (0.5.0, late March → 14/04/2026) —
    complete remedial-action catalog (topology / PST / curtailment /
    load-shedding), combined actions, two-step N-1 workflow,
    detachable viz tabs, save/reload + interaction logging,
    ~16.5 s → ~4 s perf vectorization.
  3. Codebase + quality consolidation (0.6.0 → 0.6.5,
    14/04 → 22/04/2026) — App.tsx refactor, backend mixin
    decomposition, auto-generated standalone, 4-layer parity
    guards, continuous code-quality gate, SVG DOM recycling,
    docs/ reorganization.
  4. PyPSA-EUR open-source European dataset (16/04 → 24/04/2026,
    PR feat: PyPSA-EUR pipeline consolidation, fr225_400 dataset, full test coverage #112) — reproducible PyPSA-EUR → XIIDM pipeline, two
    committed datasets (pypsa_eur_fr400, pypsa_eur_fr225_400),
    dedicated pytest coverage.

docs/README.md is updated to index the new file under the
Architecture section. This is a starting point — the user has
indicated they will enrich the content next.

Test plan

  • Markdown renders correctly on GitHub (links to neighbour
    docs resolve: code-quality-analysis.md,
    app-refactoring-plan.md, phase2-state-management-optimization.md,
    ../data/pypsa-eur-osm-to-xiidm.md,
    ../../frontend/PARITY_AUDIT.md).
  • docs/README.md Architecture table includes the new row.
  • No code or behavior changes — docs-only PR.

https://claude.ai/code/session_01Pg7fuCUG2edfm5PyHS6SbN


Generated by Claude Code

claude added 4 commits April 30, 2026 12:12
Walks through the project history reconstructed from git log + CHANGELOG:
minimal end-to-end backbone (pre-0.5.0), feature catalog (0.5.0),
codebase + quality consolidation (0.6.0 → 0.6.5), and the PyPSA-EUR
open-source European dataset (PR #112). Indexed under docs/README.md.

https://claude.ai/code/session_01Pg7fuCUG2edfm5PyHS6SbN
Rewrites Phase 1 from the abstract CHANGELOG summary into a six-week
chronology grounded in PR descriptions:

- 1.1 Bootstrap (pre-#1) — scaffolding pushed direct to main
- 1.2 End-to-end loop (PRs #1–#15) — NAD scaling, multi-tab pan/zoom,
  manual actions, action variants, action scoring, svgUtils + usePanZoom
- 1.3 UX maturation (PRs #16–#24) — settings panel, OverloadPanel,
  monitoring factor, action filters, state-switching SLDs
- 1.4 Robustness + CI (PRs #25–#46) — backend/frontend test suites,
  CircleCI + GitHub Actions, lazy loading, divergence UI
- 1.5 Persistence + complex actions (PRs #47–#56) — save/reload sessions,
  combined actions w/ persistence, islanding MW, App.tsx Phase 1 hooks
- 1.6 Two-step + replay logging + rebrand (PRs #57–#65) — split analysis,
  config.json persistence, load shedding, MW Start, SLD highlights,
  InteractionLogger, ExpertAssist → Co-Study4Grid

Sections 2–4 left untouched (will be reconciled in a follow-up).

https://claude.ai/code/session_01Pg7fuCUG2edfm5PyHS6SbN
Reconciliation of section 2 (0.5.0):
- Drop misattributed PRs that were actually pre-rebrand: save/reload
  (#49/#52), MW Start (#62), interaction-logging (#64), SLD highlights
  (#63), load shedding initial integration (#61). All now properly
  cited in section 1.5–1.6.
- Disambiguate App.tsx refactor history: PR #56 (hooks, 2100 → 800,
  pre-rebrand) vs PR #74 (components, 1000 → 650, 0.5.0) vs PR #75
  (memoization Phase 2, same LoC).
- Add accurate 0.5.0 PRs: #66 (vectorization w/ benchmark table),
  #69/#70/#71 (UI polish), #72 (curtailment), #73 (loads_p/gens_p
  format + configurable MW), #74/#75 (App.tsx decomposition),
  #78 (PST tap re-simulation), #84/#86/#87/#90 (detachable tabs).
- Add a recap table summarizing what's truly new in 0.5.0.

Diagrams added (Mermaid, GitHub-rendered):
- Gantt timeline of all 4 phases (top of doc).
- High-level architecture (frontend / backend / data).
- Two-step analysis sequence diagram (section 1.6).
- App.tsx LoC evolution flow (section 2.4).
- Backend mixin decomposition before/after PR #104/#106 (section 3).
- PyPSA-EUR pipeline flowchart (section 4).

https://claude.ai/code/session_01Pg7fuCUG2edfm5PyHS6SbN
Cloned marota/ExpertAssist (783 commits, init 13/02/2026 13:25) to
extract concrete metrics for the pre-rebrand era — previously sourced
only from PR descriptions:

- Section 1.1: replace handwave "scaffolding existed" with the actual
  init commit (44 files, 2513 LoC). Document the 7 endpoints, 130-LoC
  main.py, 35-LoC App.tsx, 19-LoC api.ts, 755-LoC standalone, 5 ad-hoc
  test scripts. Confirm NDJSON streaming + tkinter file picker were
  present at commit zero.
- Section 1.2: add a measured before/after table for PRs #1-#15
  (App.tsx 35 → 617, VisualizationPanel 33 → 260, main.py 130 → 233,
  recommender_service.py 384 → 636, standalone 755 → 2100, endpoints
  7 → 13). List the 6 endpoints added during this fortnight.
- Section 1.5: replace the rounded "2100 → ~800" for PR #56 with the
  measured value (2100 → 969 at merge), note the post-merge cleanup
  reaches the original ~800 target.
- App.tsx LoC diagram: insert a "cleanup 22-28/03" node between PR #56
  and PR #74 to reflect actual figures.
- Update the leading note to mention the ExpertAssist clone.

https://claude.ai/code/session_01Pg7fuCUG2edfm5PyHS6SbN
@marota
marota merged commit b19336a into main Apr 30, 2026
8 checks passed
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