|
1 | | -import ToolTile from '../components/ToolTile.jsx'; |
2 | | - |
3 | 1 | export default function Sandbox() { |
4 | 2 | return ( |
5 | | - <div className="space-y-4"> |
6 | | - <h1 className="font-serif text-2xl">Interactive Tools Sandbox</h1> |
7 | | - <p className="font-sans">The Interactive Tools Sandbox is your playground for hands-on innovation. Here, you’ll find a collection of quick, plug-and-play tools that help teams think through problems and test ideas in real time. From control-signal tiles (small interactive cards surfacing key insights) to sandbox workbenches for trying out AI-driven scenarios, each tool is designed to be lightweight and intuitive. For example, you might open a visual use case mapper to sketch out a process flow, or use a prompt editor to generate a first draft of a plan. Each tool comes with simple instructions and sample data so you can start experimenting instantly. This sandbox lets you fail fast and learn fast – feel free to explore different tools, adjust parameters, and discover new perspectives, all in a safe environment that’s separate from any live project systems.</p> |
8 | | - <div className="grid grid-cols-2 gap-4 mt-4"> |
9 | | - <ToolTile>Signal Tile</ToolTile> |
10 | | - <ToolTile>Workbench</ToolTile> |
11 | | - </div> |
| 3 | + <div className="space-y-6"> |
| 4 | + <header className="space-y-2"> |
| 5 | + <h1 className="font-serif text-2xl">Galois Adjoints</h1> |
| 6 | + <p className="font-sans">A practical way to use Galois adjoints (poset adjunctions) in project management is to treat them as a bidirectional translation layer between what you promise and what you must resource.</p> |
| 7 | + </header> |
| 8 | + |
| 9 | + <section className="space-y-3"> |
| 10 | + <h2 className="font-serif text-xl">Translation layer</h2> |
| 11 | + <ul className="list-disc pl-6 space-y-1 font-sans"> |
| 12 | + <li><strong>Requirements space</strong>: what you want to be true and what you promise.</li> |
| 13 | + <li><strong>Commitments space</strong>: what you must resource, approve, procure, schedule, and mitigate.</li> |
| 14 | + </ul> |
| 15 | + <p className="font-sans">You get two monotone maps that “fit” each other exactly via the adjunction law.</p> |
| 16 | + </section> |
| 17 | + |
| 18 | + <section className="space-y-3"> |
| 19 | + <h2 className="font-serif text-xl">Core move: define one map, derive the other</h2> |
| 20 | + <div className="space-y-2 font-sans"> |
| 21 | + <p><span className="font-semibold">Let</span> P be requirements ordered from easier → harder, and Q be commitments ordered from weaker → stronger (more budget, more time, higher technical scope, higher regulatory readiness, and so on).</p> |
| 22 | + <p><span className="font-semibold">Left adjoint</span> <span className="font-mono">f : Requirements → Commitments</span> maps a requirement to the weakest commitment package that still guarantees it.</p> |
| 23 | + <p><span className="font-semibold">Right adjoint</span> <span className="font-mono">g : Commitments → Requirements</span> maps a commitment package to the strongest requirement level you can safely claim.</p> |
| 24 | + </div> |
| 25 | + </section> |
| 26 | + |
| 27 | + <section className="space-y-3"> |
| 28 | + <h2 className="font-serif text-xl">Governance test (adjunction law)</h2> |
| 29 | + <p className="font-sans">Your plan/commitment <span className="font-mono">c</span> is sufficient for requirement <span className="font-mono">r</span> iff:</p> |
| 30 | + <ul className="list-disc pl-6 space-y-1 font-sans"> |
| 31 | + <li>It dominates the weakest commitment <span className="font-mono">f(r)</span>, so <span className="font-mono">f(r) ⪯ c</span>.</li> |
| 32 | + <li>The requirement sits below what you can safely guarantee, so <span className="font-mono">r ⪯ g(c)</span>.</li> |
| 33 | + </ul> |
| 34 | + </section> |
| 35 | + |
| 36 | + <section className="space-y-3"> |
| 37 | + <h2 className="font-serif text-xl">Where this plugs into monotone co-design thinking</h2> |
| 38 | + <p className="font-sans">Project management lives on trade-offs (performance/scope vs schedule vs cost vs risk). A Galois adjoint gives you a disciplined way to ask:</p> |
| 39 | + <ul className="list-disc pl-6 space-y-1 font-sans"> |
| 40 | + <li>“If stakeholders push capacity up one notch, what is the minimum non-decreasing uplift I must impose on signalling, approvals, budget, schedule, or risk controls?”</li> |
| 41 | + <li>“If Treasury caps budget, what’s the strongest deliverable we can still honestly commit to?”</li> |
| 42 | + </ul> |
| 43 | + <p className="font-sans">Feasibility is encoded as inequalities like <span className="font-mono">r ⪯ g(c)</span> or <span className="font-mono">f(r) ⪯ c</span>.</p> |
| 44 | + </section> |
| 45 | + |
| 46 | + <section className="space-y-3"> |
| 47 | + <h2 className="font-serif text-xl">Critical realism: adjoints exist only if “weakest” exists</h2> |
| 48 | + <p className="font-sans">In real project trade-offs, a minimum commitment is often not unique (classic Pareto trade-off: buy time with money or money with time). That’s why solutions are often antichains (Pareto fronts), not a single least element.</p> |
| 49 | + <ul className="list-disc pl-6 space-y-1 font-sans"> |
| 50 | + <li>Use a Galois adjoint when governance forces a single policy-defined notion of “weakest” (like a stage-gate package or a unified budget/schedule index).</li> |
| 51 | + <li>Use MCDP-style set-valued answers when you want to preserve genuine trade-offs (solutions as upper sets or antichains).</li> |
| 52 | + </ul> |
| 53 | + </section> |
12 | 54 | </div> |
13 | 55 | ); |
14 | 56 | } |
0 commit comments