Skip to content

Commit 35574c2

Browse files
Merge pull request #43 from lawrencerowland/codex/add-galois-adjoints-page-with-tidy-thoughts
Replace Tools Sandbox with “Galois Adjoints” explainer and update nav
2 parents 60c5e35 + 667774d commit 35574c2

4 files changed

Lines changed: 54 additions & 13 deletions

File tree

apps/website/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<nav>
1212
<a href="./index.html">Home</a> |
1313
<a href="./projects/">Projects</a> |
14-
<a href="./sandbox/">Tools Sandbox</a> |
14+
<a href="./sandbox/">Galois Adjoints</a> |
1515
<a href="./ai-tools/">AI Tools</a> |
1616
<a href="./systems/">Systems Thinking</a> |
1717
<a href="./lifecycle/">Lifecycle</a> |

apps/website/src/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function Navbar() {
1515
<nav className="flex flex-wrap justify-around gap-x-8 p-4 border-b mb-4">
1616
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/">Home</Link>
1717
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/projects">Projects</Link>
18-
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/sandbox">Tools Sandbox</Link>
18+
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/sandbox">Galois Adjoints</Link>
1919
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/ai-tools">AI Tools</Link>
2020
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/systems">Systems Thinking</Link>
2121
<Link className="hover:text-accent-600 hover:underline decoration-2" to="/lifecycle">Lifecycle</Link>

apps/website/src/pages/Sandbox.jsx

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,56 @@
1-
import ToolTile from '../components/ToolTile.jsx';
2-
31
export default function Sandbox() {
42
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>
1254
</div>
1355
);
1456
}

index.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<nav>
1111
<a href="apps/website/index.html">Home</a> |
1212
<a href="apps/website/projects/">Projects</a> |
13-
<a href="apps/website/sandbox/">Tools Sandbox</a> |
13+
<a href="apps/website/sandbox/">Galois Adjoints</a> |
1414
<a href="apps/website/ai-tools/">AI Tools</a> |
1515
<a href="apps/website/systems/">Systems Thinking</a> |
1616
<a href="apps/website/lifecycle/">Lifecycle</a> |
@@ -26,4 +26,3 @@ <h1>Welcome</h1>
2626
</ul>
2727
</body>
2828
</html>
29-

0 commit comments

Comments
 (0)