185 lines
9.8 KiB
HTML
185 lines
9.8 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>Stackchain AI Lab — Agent Engineering Report</title>
|
||
<style>
|
||
* { box-sizing: border-box; }
|
||
html, body { height: 100%; }
|
||
body { margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; background: #0b1220; color: #e5e7eb; }
|
||
.wrap { max-width: 1200px; margin: 0 auto; padding: 32px 20px; }
|
||
h1 { font-size: 28px; margin: 0; letter-spacing: .02em; }
|
||
.sub { color: #9aa3b2; font-size: 13px; margin-top: 6px; }
|
||
.grid { display: grid; gap: 14px; margin-top: 24px; }
|
||
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
|
||
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
|
||
.card { background: #111827; border: 1px solid #1f2937; border-radius: 14px; padding: 18px; }
|
||
.card h2 { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: #93c5fd; margin: 0 0 12px 0; }
|
||
.pill { display: inline-block; padding: 2px 9px; border-radius: 999px; background: #1f2937; color: #e5e7eb; font-size: 12px; margin: 2px; border: 1px solid #374151; }
|
||
.pill.live { border-color: #22c55e; color: #86efac; }
|
||
.pill.blocked { border-color: #ef4444; color: #fca5a5; }
|
||
.pill.wip { border-color: #f59e0b; color: #fcd34d; }
|
||
table { width: 100%; border-collapse: collapse; font-size: 13px; }
|
||
th { text-align: left; color: #9aa3b2; padding: 8px 6px; border-bottom: 1px solid #1f2937; font-weight: 500; }
|
||
td { padding: 8px 6px; border-bottom: 1px solid rgba(31,41,55,.6); }
|
||
tr:last-child td { border-bottom: none; }
|
||
a { color: #60a5fa; text-decoration: none; }
|
||
.rule { height: 1px; background: #1f2937; margin: 24px 0; border: none; }
|
||
.kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; background: #0b1220; border: 1px solid #374151; padding: 2px 6px; border-radius: 6px; font-size: 12px; color: #e5e7eb; }
|
||
.status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #9aa3b2; }
|
||
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
|
||
.dot.green { background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.2); }
|
||
.dot.red { background: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.2); }
|
||
.dot.amber { background: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,.2); }
|
||
.muted { color: #9aa3b2; }
|
||
.phase { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: #93c5fd; margin-bottom: 8px; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
<header style="display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:10px;">
|
||
<div>
|
||
<h1>Stackchain AI Lab — Agent Engineering Report</h1>
|
||
<div class="sub">Audience: agent engineers · 2026-07-08 · Source of truth: Gitea</div>
|
||
</div>
|
||
<div class="status"><span class="dot green"></span> Operations active</div>
|
||
</header>
|
||
|
||
<section class="grid grid-3" style="margin-top:24px;">
|
||
<div class="card">
|
||
<h2>Current State</h2>
|
||
<table>
|
||
<tr><td>Infra</td><td>Gitea 1.22.0, Caddy-free routing</td></tr>
|
||
<tr><td>Public URL</td><td><a href="https://forge.alexanderwhitestone.com/git/">forge.alexanderwhitestone.com/git/</a></td></tr>
|
||
<tr><td>Org</td><td><a href="https://forge.alexanderwhitestone.com/git/org/stackchain">stackchain</a></td></tr>
|
||
<tr><td>Repos</td><td>4 active (`hackathon`, `dashboard`, `agent-todo-tracker`, `project-template`)</td></tr>
|
||
<tr><td>Active users</td><td>5 (2 admins onboarded via CLI + 2 promoted via DB + bot)</td></tr>
|
||
<tr><td>Pipeline</td><td>CI + RC workflows pushed to mains</td></tr>
|
||
<tr><td>Loop</td><td>Issue → PR → review → merge/no-spam, stale/blocked handled</td></tr>
|
||
<tr><td>Creative agent</td><td>Hou3 profile active on Tencent Hy3</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>Stackchain Dashboard</h2>
|
||
<table>
|
||
<tr><td>Repo</td><td><a href="https://forge.alexanderwhitestone.com/git/stackchain/stackchain-dashboard">stackchain/stackchain-dashboard</a></td></tr>
|
||
<tr><td>Backend</td><td>FastAPI context endpoint + suggestion engine</td></tr>
|
||
<tr><td>Frontend</td><td>Adaptive SPA shell with 3-column layout</td></tr>
|
||
<tr><td>Kanban</td><td>Hermes board + label sync script wired</td></tr>
|
||
<tr><td>Issues</td><td>#9 epic, #10 context, #11 engine, #12 panels, #13 cache</td></tr>
|
||
<tr><td>Status</td><td><span class="pill wip">WIP</span> Backend scaffold shipped</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>Queue Snapshot</h2>
|
||
<table>
|
||
<tr><td>Open issues</td><td>19 items in `stackchain-hackathon`</td></tr>
|
||
<tr><td>P0/P1</td><td><span class="pill blocked">P0</span> Pages enablement (blocked on human handoff)</td></tr>
|
||
<tr><td>P1</td><td>#8 Adaptive UI, #10 context, #11 engine, #12 frontend</td></tr>
|
||
<tr><td>P2</td><td>#13 cache, #5 agent-todo, #6 scaffolder</td></tr>
|
||
<tr><td>Creative</td><td>#16 README, #17 overlays, #18 release notes</td></tr>
|
||
<tr><td>Open PRs</td><td>0</td></tr>
|
||
<tr><td>Hou3</td><td>Actively composing deliverable drafts</td></tr>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<hr class="rule" />
|
||
|
||
<section class="grid grid-2">
|
||
<div class="card">
|
||
<h2>Operational Constraints</h2>
|
||
<table>
|
||
<tr><td>Caddy</td><td>No changes for Gitea work</td></tr>
|
||
<tr><td>Human touchpoints</td><td>Prototype review + RC test only</td></tr>
|
||
<tr><td>Config</td><td>`ROOT_URL=https://forge.alexanderwhitestone.com/git/`</td></tr>
|
||
<tr><td>Assets</td><td>`/var/lib/gitea/public/assets/` verified present</td></tr>
|
||
<tr><td>Pages API</td><td>Returns <span class="kbd">404</span>; enablement gated</td></tr>
|
||
<tr><td>Cleanup done</td><td>Dupe users removed, admins promoted</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>Risk Register</h2>
|
||
<table>
|
||
<tr><td>Gitea Pages auth</td><td><span class="pill blocked">Medium</span></td><td>Surface as handoff in #14</td></tr>
|
||
<tr><td>Memory</td><td><span class="pill wip">Medium</span></td><td>Watchdog + serialize workers</td></tr>
|
||
<tr><td>Auth drift</td><td><span class="pill live">Low</span></td><td>Single admin path, weekly audit</td></tr>
|
||
<tr><td>Workflow drift</td><td><span class="pill wip">Medium</span></td><td>One canonical workflow source</td></tr>
|
||
<tr><td>Hou3 spam</td><td><span class="pill live">Low</span></td><td>Seen-state + max-comment guard</td></tr>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<hr class="rule" />
|
||
|
||
<section class="card">
|
||
<h2>Market Fit Matrix — What We Can Build</h2>
|
||
<table>
|
||
<tr><th>Product</th><th>Market Signal</th><th>Fit</th><th>Build Order</th></tr>
|
||
<tr><td>Adaptive UI dashboard</td><td>Context-aware developer surfaces are emerging category</td><td><span class="pill live">Strong</span></td><td>P0</td></tr>
|
||
<tr><td>Agent Task Harness</td><td>Deterministic multi-agent orchestration is foundational</td><td><span class="pill live">Strong</span></td><td>P1</td></tr>
|
||
<tr><td>Agent Memory Store</td><td>Cross-session memory is table stakes for useful agents</td><td><span class="pill live">Strong</span></td><td>P1</td></tr>
|
||
<tr><td>PR Review Agent</td><td>Automated review reduces human load</td><td><span class="pill live">Strong</span></td><td>P1</td></tr>
|
||
<tr><td>Repo Scaffolder Agent</td><td>NL project generation lowers onboarding friction</td><td><span class="pill wip">Medium</span></td><td>P2</td></tr>
|
||
<tr><td>Hou3 creative pipeline</td><td>Launch docs/content automation</td><td><span class="pill wip">Medium</span></td><td>P2</td></tr>
|
||
<tr><td>Gitea Pages site</td><td>Public lab landing page</td><td><span class="pill blocked">Medium</span></td><td>Blocked</td></tr>
|
||
<tr><td>Kanban-to-issue sync</td><td>Single pane of glass</td><td><span class="pill wip">Medium</span></td><td>Wired</td></tr>
|
||
</table>
|
||
</section>
|
||
|
||
<hr class="rule" />
|
||
|
||
<section class="grid grid-3">
|
||
<div class="card">
|
||
<div class="phase">Phase A — 0–48h</div>
|
||
<h2>Close the Loop</h2>
|
||
<ul>
|
||
<li>Ship adaptive dashboard panels from #8–#13</li>
|
||
<li>Wire Hou3 output → issues/PRs as real comments</li>
|
||
<li>Run first full autonomous cycle: branch, impl, PR, self-review, merge</li>
|
||
</ul>
|
||
</div>
|
||
<div class="card">
|
||
<div class="phase">Phase B — 48h–2w</div>
|
||
<h2>Harden</h2>
|
||
<ul>
|
||
<li>Fill test suites in dashboard + agent-todo-tracker</li>
|
||
<li>Automate token rotation via cron/Hermes job</li>
|
||
<li>Profile memory usage before adding more workers</li>
|
||
</ul>
|
||
</div>
|
||
<div class="card">
|
||
<div class="phase">Phase C — 2w+</div>
|
||
<h2>Scale</h2>
|
||
<ul>
|
||
<li>Multi-repo issue queue across <span class="kbd">stackchain/*</span></li>
|
||
<li>Unique staging targets per RC</li>
|
||
<li>Separate Hou3 creative queue from code queue</li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
|
||
<hr class="rule" />
|
||
|
||
<div class="card">
|
||
<h2>Human Gates</h2>
|
||
<table>
|
||
<tr><th>Human Action</th><th>Trigger</th><th>What to do</th></tr>
|
||
<tr><td>Prototype review</td><td>PR includes preview link</td><td>Click, test, comment feedback</td></tr>
|
||
<tr><td>RC approval</td><td>Automated tests pass, draft release created</td><td>Verify locally, merge release PR</td></tr>
|
||
<tr><td>Pages handoff</td><td>Issue #14 is `blocked`</td><td>Enable Gitea Pages in UI; confirm URL</td></tr>
|
||
<tr><td>3 consecutive failed reviews</td><td>Auto-pause in loop</td><td>Surface in issue, triage, decide path</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<footer style="margin-top:20px;color:#6b7280;font-size:12px;">
|
||
Source of truth: Gitea issues/PRs. Hermes kanban is mirror-only. No human devops required unless explicitly gated.
|
||
</footer>
|
||
</div>
|
||
</body>
|
||
</html>
|