- Python 100%
Fase 3 brief: sequential fan-out orchestrator over N portfolio projects, reusing the single-project run_project seam. Four operator design decisions locked via interview: isolate execution-state per project but SHARE one VerdictStore (ExpeL accumulates across the portfolio); sequential (concurrency = documented extension point); fixed config-list topology (resolves plan §12 open decision); list-of-RunResult + thin aggregate output. 0 research topics (all internal; MAF concurrency already spiked in Fase 1 + de-scoped). brief-reviewer (opus) → PROCEED on first iteration, all 6 dimensions pass (completeness 5, consistency 4, testability 4, scope 5, research 5, memory 5). Folded in its PROCEED-level refinements before finalize: per-project docs_dir MUST be config-driven or SC1 breaks; SC7 given a concrete parametrised-test assertion; SC5 baseline made relative (current+new, not a guessed 103); SC3 detach encodable as an automatic guard; SC4 fixture must yield overlapping features; new synthetic project flagged AI-authored (user-not-domain-expert). Validator: valid, 0 warnings. phase_signals: plan/execute/review = high/opus. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019any9zfGNNwWJPX5Zq2QRz |
||
|---|---|---|
| .claude/projects | ||
| docs | ||
| spikes | ||
| src/portfolio_optimiser | ||
| tests | ||
| .gitignore | ||
| .python-version | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| env.template | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
portfolio-optimiser
Generic, open framework on Microsoft Agent Framework (MAF) for finding cost-savings / efficiency proposals within each project of a portfolio of independent projects. Multiple agents collaborate to generate candidate proposals; a mandatory deterministic validator (solver + Monte Carlo) decides the numbers; domain experts review via human-in-the-loop, and the system learns from their verdicts.
Status: Early development (plan phase). Not yet usable.
Disclaimer — technical framework only. This project is a technical framework. Organizations that deploy it are themselves responsible for ensuring a valid processing purpose and for any required assessments (DPIA, risk/ROS, security reviews, etc.). The framework ships technical affordances (local-only mode, provenance/audit logging, no silent data egress) to enable compliant use, but makes no compliance guarantees.
Design philosophy
The result will never fit any single customer 100%. The goal is a ~90% genuinely generic core plus clear extension points, so competent people can configure the last mile per customer. We deliberately do not chase the final 10%.
Docs
docs/research/2026-06-23-prior-art-platform.md— prior-art & platform research (incl. implementation register §15).docs/plan/2026-06-23-incremental-plan.md— incremental delivery plan.
Stack
Python ≥3.10 · MAF (agent-framework) · uv. Backend profiles: Azure/Foundry (full) + local (fallback).
Develop
uv sync
uv run pytest
uv run ruff check .