smlflg's picture
Initial public upload from Projekte/AgentProjectMinenraeumer (part 9)
b67a1e9 verified
Raw History Blame Contribute Delete
23.2 kB
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Project Portfolio Map V1</title>
<style>
:root {
--bg: #f7f4ee;
--surface: #ffffff;
--surface-muted: #eee8de;
--ink: #181716;
--muted: #635c54;
--line: #d8d1c7;
--red: #b42318;
--amber: #9a5b00;
--green: #146c43;
--blue: #1f5f8f;
--purple: #6046a6;
--shadow: 0 14px 34px rgba(44, 37, 29, 0.10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.48;
}
a {
color: inherit;
text-decoration-color: rgba(31, 95, 143, 0.55);
text-decoration-thickness: 1px;
text-underline-offset: 3px;
}
.page {
width: min(1240px, calc(100% - 32px));
margin: 0 auto;
padding: 24px 0 48px;
}
.topbar {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
justify-content: space-between;
margin-bottom: 14px;
color: var(--muted);
font-size: 14px;
}
.topbar nav {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.hero,
.summary,
.section,
.family,
.decision,
.note {
background: var(--surface);
border: 1px solid var(--line);
border-radius: 8px;
box-shadow: var(--shadow);
}
.hero {
display: grid;
grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
gap: 18px;
margin-bottom: 18px;
padding: 24px;
}
.eyebrow {
margin: 0 0 9px;
color: var(--blue);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
h1,
h2,
h3,
p {
margin-top: 0;
}
h1 {
max-width: 13ch;
margin-bottom: 14px;
font-size: clamp(38px, 6vw, 76px);
line-height: 0.95;
letter-spacing: 0;
}
h2 {
margin-bottom: 12px;
font-size: 21px;
line-height: 1.15;
}
h3 {
margin-bottom: 8px;
font-size: 16px;
line-height: 1.2;
}
.lead {
max-width: 72ch;
margin-bottom: 0;
color: var(--muted);
font-size: 17px;
}
.hero-aside {
display: grid;
gap: 10px;
align-content: start;
}
.answer-row {
display: grid;
gap: 4px;
padding: 12px;
border: 1px solid var(--line);
border-radius: 8px;
background: var(--surface-muted);
}
.label {
color: var(--muted);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.value {
font-weight: 750;
}
.metrics {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin-bottom: 18px;
}
.summary {
padding: 14px;
min-height: 100px;
}
.summary strong {
display: block;
margin-bottom: 5px;
font-size: 28px;
line-height: 1;
}
.summary span {
color: var(--muted);
font-size: 13px;
}
.layout {
display: grid;
grid-template-columns: 280px minmax(0, 1fr);
gap: 18px;
align-items: start;
}
.toc {
position: sticky;
top: 16px;
display: grid;
gap: 8px;
padding: 16px;
background: var(--surface);
border: 1px solid var(--line);
border-radius: 8px;
box-shadow: var(--shadow);
}
.toc a {
display: block;
padding: 7px 0;
color: var(--muted);
font-size: 14px;
text-decoration: none;
border-bottom: 1px solid var(--line);
}
.toc a:last-child {
border-bottom: 0;
}
.content {
display: grid;
gap: 18px;
min-width: 0;
}
.section {
padding: 20px;
}
.section p:last-child {
margin-bottom: 0;
}
.grid {
display: grid;
gap: 14px;
}
.grid.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.three {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.family,
.decision,
.note {
padding: 16px;
min-width: 0;
}
.family {
border-left: 5px solid var(--blue);
}
.family.hermes { border-left-color: var(--red); }
.family.sidecar { border-left-color: var(--purple); }
.family.uni { border-left-color: var(--green); }
.family.apps { border-left-color: var(--amber); }
.family.archive { border-left-color: var(--muted); }
.family p,
.decision p,
.note p {
color: var(--muted);
}
.path-list,
.plain-list {
display: grid;
gap: 6px;
margin: 0;
padding: 0;
list-style: none;
}
.path-list li,
.plain-list li {
min-width: 0;
overflow-wrap: anywhere;
}
.path-list li {
padding: 7px 8px;
border: 1px solid var(--line);
border-radius: 7px;
background: #fbfaf8;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 13px;
}
.badge-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin: 10px 0 12px;
}
.badge {
display: inline-flex;
align-items: center;
min-height: 24px;
padding: 3px 8px;
border: 1px solid var(--line);
border-radius: 999px;
background: #fbfaf8;
color: var(--muted);
font-size: 12px;
font-weight: 750;
white-space: nowrap;
}
.badge.red {
color: var(--red);
border-color: rgba(180, 35, 24, 0.34);
background: #fff1ef;
}
.badge.amber {
color: var(--amber);
border-color: rgba(154, 91, 0, 0.34);
background: #fff8e8;
}
.badge.green {
color: var(--green);
border-color: rgba(20, 108, 67, 0.34);
background: #eefbf3;
}
.badge.blue {
color: var(--blue);
border-color: rgba(31, 95, 143, 0.34);
background: #eef6ff;
}
.badge.purple {
color: var(--purple);
border-color: rgba(96, 70, 166, 0.34);
background: #f4f0ff;
}
.compact-table {
width: 100%;
border-collapse: collapse;
overflow-wrap: anywhere;
}
.compact-table th,
.compact-table td {
padding: 11px 10px;
border-bottom: 1px solid var(--line);
text-align: left;
vertical-align: top;
}
.compact-table th {
color: var(--muted);
font-size: 12px;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.compact-table tr:last-child td {
border-bottom: 0;
}
code {
padding: 1px 4px;
border-radius: 5px;
background: #ebe6dd;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.94em;
}
.decision {
border-left: 5px solid var(--amber);
}
.decision.today {
border-left-color: var(--green);
}
.decision.later {
border-left-color: var(--purple);
}
.footer-links {
display: flex;
flex-wrap: wrap;
gap: 12px;
color: var(--muted);
font-size: 14px;
}
@media (max-width: 960px) {
.hero,
.layout,
.metrics,
.grid.two,
.grid.three {
grid-template-columns: 1fr;
}
.toc {
position: static;
}
}
</style>
</head>
<body>
<main class="page">
<div class="topbar">
<span>ProjectIntakeTower / Portfolio Map V1 / 2026-05-05</span>
<nav aria-label="Related artifacts">
<a href="../PROJECT_PORTFOLIO_MAP_V1.md">Markdown</a>
<a href="owner_decision_board.html">Decision Board</a>
<a href="project_learning_graphic.html">Raw Graphic</a>
</nav>
</div>
<header class="hero">
<section>
<p class="eyebrow">Owner-facing portfolio map</p>
<h1>Project Portfolio Map V1</h1>
<p class="lead">
Diese Website ist die lesbare Fassung der Markdown-Ernte aus ProjectIntakeTower.
Sie soll nicht alle 500 Cluster erklären, sondern Projektfamilien, Risiken und die nächste
kontrollierte Arbeitsreihenfolge sichtbar machen.
</p>
</section>
<aside class="hero-aside" aria-label="Current answer">
<div class="answer-row">
<span class="label">Heute wahr</span>
<span class="value">ProjectIntakeTower ist als Rohkarte brauchbar, aber kein automatischer Wahrheitsspeicher.</span>
</div>
<div class="answer-row">
<span class="label">Heute nicht tun</span>
<span class="value">Keine Agenten-Kaskade, keine Source-Edits, keine Issues, keine Merge- oder Archive-Aktion.</span>
</div>
<div class="answer-row">
<span class="label">Nächste Entscheidung</span>
<span class="value">Weiter verdichten oder genau ein Repo read-only für einen Sicherheits-Snapshot vorbereiten.</span>
</div>
</aside>
</header>
<section class="metrics" aria-label="Portfolio counts">
<div class="summary">
<strong>500</strong>
<span>Projekt- und Artefaktcluster</span>
</div>
<div class="summary">
<strong>98</strong>
<span>Git-Repos im Scan</span>
</div>
<div class="summary">
<strong>58</strong>
<span>Repos mit uncommitted changes</span>
</div>
<div class="summary">
<strong>66</strong>
<span>Human-Decision-Einträge in triage</span>
</div>
</section>
<div class="layout">
<aside class="toc" aria-label="Page sections">
<strong>Abschnitte</strong>
<a href="#purpose">Zweck</a>
<a href="#truth">Was gilt</a>
<a href="#families">Projektfamilien</a>
<a href="#decisions">Entscheidungen</a>
<a href="#ignore">Heute ignorieren</a>
<a href="#next">Nächste Aktion</a>
<a href="#sources">Quellen</a>
</aside>
<div class="content">
<section class="section" id="purpose">
<h2>Zweck und Nicht-Zweck</h2>
<div class="grid two">
<div>
<h3>Zweck</h3>
<p>
Projekte mappen, ihren Zustand verstehen und daraus eine kontrollierte nächste
Arbeitsreihenfolge ableiten.
</p>
</div>
<div>
<h3>Nicht-Zweck</h3>
<ul class="plain-list">
<li>Keine Agenten-Kaskade rekonstruieren.</li>
<li>Nicht alle 500 Cluster verstehen.</li>
<li>Nicht 66 Entscheidungen auf einmal treffen.</li>
<li>Keine Source-Projekte, GitHub Issues, Merges oder Archive-Aktionen.</li>
</ul>
</div>
</div>
</section>
<section class="section" id="truth">
<h2>Was jetzt als wahr gilt</h2>
<p>
Die Rohkarte ist brauchbar. Gleichzeitig sind die Quellen nicht vollständig konsistent:
<code>OWNER_DIGEST.md</code> ist ein grober Einstieg, <code>triage/*.md</code> ist die
aktuellere Arbeitsgrundlage. Nichts wird blind automatisiert.
</p>
<table class="compact-table">
<thead>
<tr>
<th>Signal</th>
<th>Wert</th>
<th>Bedeutung</th>
</tr>
</thead>
<tbody>
<tr>
<td>Duplicate-Cluster</td>
<td>4</td>
<td>Es gibt echte Merge-/Konsolidierungsarbeit, aber nicht heute als Aktion.</td>
</tr>
<tr>
<td>agent_control_tower_near</td>
<td>14</td>
<td>Die Tower-Idee ist verteilt und braucht zuerst eine Anchor-Entscheidung.</td>
</tr>
<tr>
<td>hermes_near</td>
<td>5</td>
<td>Operatives Nervensystem, vorsichtig und zuerst read-only behandeln.</td>
</tr>
<tr>
<td>Broken/auffällig</td>
<td>72</td>
<td>Signal für spätere Triage, nicht für sofortige Bulk-Reparatur.</td>
</tr>
</tbody>
</table>
</section>
<section class="section" id="families">
<h2>Wichtigste Projektfamilien</h2>
<div class="grid two">
<article class="family">
<h3>1. Agent Control Tower / Kommandozentrale</h3>
<p>Langfristiger Steuerungsraum. Viele Varianten derselben Grundidee, deshalb nicht weiterbauen, bevor der Anchor entschieden ist.</p>
<div class="badge-row">
<span class="badge red">HUMAN_DECISION_REQUIRED</span>
<span class="badge purple">Konsolidierung</span>
</div>
<ul class="path-list">
<li>/home/smlflg/Projekte/Zentrale</li>
<li>/home/smlflg/Projekte/ACT-agentcommandotower</li>
<li>/home/smlflg/Projekte/AIOS-Cockpit</li>
<li>/home/smlflg/Projekte/CodexDashBoard</li>
<li>/home/smlflg/Projekte/ProjectDashboard</li>
<li>/home/smlflg/Projekte/HarnessDashboard</li>
<li>/home/smlflg/Projekte/AgentSwarmDashboard</li>
<li>/home/smlflg/Projekte/KomandoZentral</li>
<li>/home/smlflg/Projekte/MultiHarnessStudio</li>
<li>/home/smlflg/Projekte/AgentArena</li>
</ul>
</article>
<article class="family hermes">
<h3>2. Hermes / operatives Agenten-Nervensystem</h3>
<p>Sehr wichtig, aber potentiell gefährlich. <code>.hermes</code> hat viele uncommitted changes und darf nicht wild verändert werden.</p>
<div class="badge-row">
<span class="badge red">STABILIZE_FIRST</span>
<span class="badge amber">Read-only snapshot planen</span>
</div>
<ul class="path-list">
<li>/home/smlflg/.hermes</li>
<li>/home/smlflg/Projekte/UEBER_AGENT</li>
<li>Hermes-nahe Agent-/Profile-/Skill-Artefakte</li>
</ul>
</article>
<article class="family sidecar">
<h3>3. Sidecar-Familie</h3>
<p>Klarer Duplicate-/Merge-Cluster. Erst Referenzversion und Ideenspeicher entscheiden, dann erst vergleichen oder mergen.</p>
<div class="badge-row">
<span class="badge purple">MERGE_DECISION_LATER</span>
<span class="badge red">nicht refactoren</span>
</div>
<ul class="path-list">
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar-V5</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar-V6</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar-V7</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar-V8</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/Sidecar-ng</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/SidecarDashboard</li>
<li>/home/smlflg/Projekte/Sidecar-Workspace/codex-sidecarV1</li>
</ul>
</article>
<article class="family uni">
<h3>4. Uni-/Lern-Agenten</h3>
<p>Nützlich, aber nicht Hauptanker für heute. AgentTestUniSupport ist dirty und braucht Stabilisierung, falls es aktiv genutzt wird.</p>
<div class="badge-row">
<span class="badge green">KEEP_BUT_NOT_TODAY</span>
</div>
<ul class="path-list">
<li>/home/smlflg/Projekte/Jobs_Selbständigkeit_Geldverdienen/AgentTestUniSupport</li>
<li>/home/smlflg/Projekte/StudyAgent</li>
</ul>
</article>
<article class="family apps">
<h3>5. Konkrete kleine Apps / Experimente</h3>
<p>Teilweise wertvoll, teilweise Merge-/Pause-Kandidaten. WerBinIch wirkt konkret und wahrscheinlich gut stabilisierbar.</p>
<div class="badge-row">
<span class="badge amber">SECONDARY</span>
</div>
<ul class="path-list">
<li>/home/smlflg/Projekte/WerBinIch</li>
<li>/home/smlflg/Projekte/BahnAgent</li>
<li>/home/smlflg/Projekte/PortfolioTimeline</li>
<li>/home/smlflg/Projekte/PromptGarage</li>
<li>/home/smlflg/Projekte/PromptGarageUI</li>
</ul>
</article>
<article class="family archive">
<h3>6. Archive-/Cache-/Evaluation-Artefakte</h3>
<p>Wahrscheinlich keine aktiven Projekte. Später markieren, aber nicht löschen.</p>
<div class="badge-row">
<span class="badge">ARCHIVE_CANDIDATE</span>
<span class="badge red">nicht löschen</span>
</div>
<ul class="path-list">
<li>FirstRealHarnessEvaluation_KarpathiesMD/results/repo_cache/django__...</li>
<li>FirstRealHarnessEvaluation_KarpathiesMD/results/repo_cache/astropy__...</li>
<li>FirstRealHarnessEvaluation_KarpathiesMD/results/repo_cache/sympy__...</li>
<li>codex-skill-validation-fixtures/commit-repo</li>
</ul>
</article>
</div>
</section>
<section class="section" id="decisions">
<h2>Top-Entscheidungen</h2>
<div class="grid two">
<article class="decision today">
<h3>1. Heute: Ist die Karte brauchbar?</h3>
<p>Ja, als Rohkarte. Nein, nicht als automatisch vertrauenswürdiger Wahrheitsspeicher.</p>
<div class="badge-row">
<span class="badge green">Verifier grün</span>
<span class="badge amber">Inhalt bleibt zu prüfen</span>
</div>
</article>
<article class="decision today">
<h3>2. Heute oder morgen: erstes Snapshot-Repo</h3>
<p>Stärkste Tendenz: <code>/home/smlflg/.hermes</code>, weil es operatives Nervensystem ist. Nur read-only anschauen und Snapshot planen.</p>
<div class="badge-row">
<span class="badge red">kein blindes Commit</span>
</div>
</article>
<article class="decision later">
<h3>3. Später: Agent-Control-Tower-Anchor</h3>
<p>Kandidaten: ACT-agentcommandotower, Zentrale, AIOS-Cockpit, ProjectDashboard / CodexDashBoard als UI-Quelle.</p>
</article>
<article class="decision later">
<h3>4. Später: Sidecar-Referenz</h3>
<p>Kandidaten: Sidecar-V7, Sidecar-V8, Sidecar-ng. Noch nicht mergen, nur vergleichen.</p>
</article>
</div>
</section>
<section class="section" id="ignore">
<h2>Heute bewusst ignorieren</h2>
<div class="grid two">
<ul class="plain-list">
<li>Alle 500 Cluster vollständig durchlesen.</li>
<li>Alle 66 Human Decisions bearbeiten.</li>
<li>Alle PAUSE-Projekte und Archive-Kandidaten klären.</li>
<li>Alle Issue-Drafts prüfen.</li>
</ul>
<ul class="plain-list">
<li>Alle Pending-Jobs außer einem bewusst ausgewählten starten.</li>
<li>Agenten-Kaskaden-Details rekonstruieren.</li>
<li>Builds, Refactors, Merges oder Source-Projekt-Änderungen ausführen.</li>
<li>GitHub Issues erstellen.</li>
</ul>
</div>
</section>
<section class="section" id="next">
<h2>Nächste konkrete Aktion</h2>
<table class="compact-table">
<thead>
<tr>
<th>Schritt</th>
<th>Status</th>
<th>Konsequenz</th>
</tr>
</thead>
<tbody>
<tr>
<td>Verifier laufen lassen</td>
<td><span class="badge green">done</span></td>
<td>Inventory, Job-Contracts und Artefakte sind konsistent genug.</td>
</tr>
<tr>
<td>Ergebnis in Markdown ergänzen</td>
<td><span class="badge green">done</span></td>
<td><code>PROJECT_PORTFOLIO_MAP_V1.md</code> bleibt kanonisch.</td>
</tr>
<tr>
<td>Danach entscheiden</td>
<td><span class="badge amber">open</span></td>
<td>ProjectIntakeTower weiter verdichten oder genau ein Repo read-only snapshotten.</td>
</tr>
</tbody>
</table>
</section>
<section class="section" id="verifier">
<h2>Verifier-Ergebnis</h2>
<table class="compact-table">
<thead>
<tr>
<th>Command</th>
<th>Result</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>python3 verifier/verify_inventory.py</code></td>
<td>passed, 500 projects</td>
</tr>
<tr>
<td><code>python3 verifier/verify_job_contracts.py</code></td>
<td>passed, 139 pending jobs</td>
</tr>
<tr>
<td><code>python3 verifier/verify_artifacts.py</code></td>
<td>passed</td>
</tr>
</tbody>
</table>
<p>
Interpretation: Die Hauptartefakte sind konsistent genug, um kontrolliert weiterzuarbeiten.
Das bestätigt nicht automatisch jede Triage-Ableitung inhaltlich.
</p>
</section>
<section class="section" id="sources">
<h2>Quellen und Nachbaransichten</h2>
<p>Diese HTML-Seite ist eine Lesefassung. Die Markdown-Datei bleibt die kanonische Arbeitsnotiz.</p>
<div class="footer-links">
<a href="../PROJECT_PORTFOLIO_MAP_V1.md">PROJECT_PORTFOLIO_MAP_V1.md</a>
<a href="owner_decision_board.html">Owner Decision Board</a>
<a href="project_learning_graphic.html">Raw Generated Graphic</a>
<a href="../OWNER_DIGEST.md">OWNER_DIGEST.md</a>
<a href="../triage/TOP_10_NEXT_ACTIONS.md">TOP_10_NEXT_ACTIONS.md</a>
<a href="../triage/HUMAN_DECISION_REQUIRED.md">HUMAN_DECISION_REQUIRED.md</a>
</div>
</section>
</div>
</div>
</main>
</body>
</html>