stackchain-hackathon/docs/agent-engineering-report.html

185 lines
9.8 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 — 048h</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 — 48h2w</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>