| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <title>Echo-Memory Developer Guide</title> |
| <meta name="description" content="Echo-Memory development guide — workflows, eval, and Cursor vibe coding." /> |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> |
| <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet" /> |
| <link rel="stylesheet" href="style.css?v=dev-skills-v1" /> |
| </head> |
| <body class="developer-page" data-title-key="dev.meta.title"> |
| <div class="page-shell page-shell--doc"> |
| <header class="top-nav top-nav--doc" role="banner"> |
| <div class="container top-nav__inner top-nav__inner--doc"> |
| <a class="brand" href="index.html"> |
| <span class="brand-name">Echo-Memory</span> |
| <span class="brand-team">Echo Team</span> |
| </a> |
| <div class="nav-actions"> |
| <a class="action-btn action-btn--ghost action-btn--compact" href="index.html" data-i18n="dev.back">← Back to project page</a> |
| <button type="button" class="lang-toggle" id="lang-toggle" data-i18n-attr="aria-label:lang.switch" aria-label="Switch language"> |
| <span data-lang-current>EN</span> / <span data-lang-alt>中文</span> |
| </button> |
| </div> |
| </div> |
| </header> |
|
|
| <main class="container dev-main"> |
| <p class="section-kicker" data-i18n="dev.kicker">Development · Cursor</p> |
| <h1 class="dev-title" data-i18n="dev.title">Developer Guide</h1> |
| <p class="section-lead" data-i18n-html="dev.subtitle"></p> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s1.title">1. What this guide is</h2> |
| <ul class="bullet-list" data-i18n-html="dev.s1.body"></ul> |
| </article> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s2.title">2. Environment & paths</h2> |
| <p data-i18n="dev.s2.intro">Set these before training or eval:</p> |
| <pre class="code-block"><code>export WAN_BASE_MODEL=/path/to/Wan2.1-T2V-1.3B |
| export DATASET_BASE_PATH=data/Context-as-Memory-Dataset |
| export PYTHONPATH=$PWD:${PYTHONPATH:-} |
| export OUTPUT_BASE_ROOT=$PWD/outputs</code></pre> |
| <ul class="bullet-list" data-i18n-html="dev.s2.body"></ul> |
| </article> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s3.title">3. Code map</h2> |
| <div class="dev-table-wrap" data-i18n-html="dev.s3.table"></div> |
| </article> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s4.title">4. Common workflows</h2> |
| <p data-i18n="dev.s4.trainLabel"><strong>Train one memory row</strong> (from repo root):</p> |
| <pre class="code-block"><code>bash train/memory_baselines_basic/run_spatial_memory_baseline.sh |
| bash train/context_learning/run_pre_qkv_ctx20.sh</code></pre> |
| <p data-i18n="dev.s4.evalLabel"><strong>Smoke eval with a HF checkpoint:</strong></p> |
| <pre class="code-block"><code>huggingface-cli download Echo-Team/Echo-Memory \ |
| context_k1/epoch-0.safetensors --local-dir ./ckpts |
| export CKPT=./ckpts/context_k1/epoch-0.safetensors |
| bash eval/v2/run_static_consistency_loop_and_revisit.sh</code></pre> |
| <p class="section-note" data-i18n-html="dev.s4.note"></p> |
| </article> |
|
|
| <article class="dev-section card dev-section--accent"> |
| <h2 data-i18n="dev.s5.title">5. Cursor vibe coding</h2> |
| <p data-i18n-html="dev.s5.intro"></p> |
| <p class="dev-skills-title" data-i18n="dev.s5.skillsTitle">Project skills</p> |
| <div class="dev-table-wrap" data-i18n-html="dev.s5.skills"></div> |
| <ul class="bullet-list" data-i18n-html="dev.s5.body"></ul> |
| <p data-i18n="dev.s5.promptLabel"><strong>Example prompt</strong></p> |
| <pre class="code-block code-block--prompt"><code data-i18n="dev.s5.prompt"></code></pre> |
| <p class="section-note" data-i18n-html="dev.s5.note"></p> |
| </article> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s6.title">6. Site & release (maintainers)</h2> |
| <p data-i18n-html="dev.s6.intro"></p> |
| <pre class="code-block"><code>bash scripts/publish_gh_pages.sh</code></pre> |
| <p data-i18n-html="dev.s6.body"></p> |
| </article> |
|
|
| <article class="dev-section card"> |
| <h2 data-i18n="dev.s7.title">7. Checklist</h2> |
| <ul class="bullet-list"> |
| <li data-i18n="dev.s7.l1">Smoke eval with one HF checkpoint before tagging a release.</li> |
| <li data-i18n-html="dev.s7.l2"></li> |
| <li data-i18n="dev.s7.l3">Public docs use Echo pool names — no internal paths or benchmark codenames.</li> |
| <li data-i18n-html="dev.s7.l4"></li> |
| </ul> |
| </article> |
|
|
| <p class="dev-repo-link" data-i18n-html="dev.footer"></p> |
| </main> |
|
|
| <footer class="footer"> |
| <div class="container footer-row"> |
| <p class="footer-copy" data-i18n="footer.copy">© Echo Team · Joy Future Academy, JD</p> |
| </div> |
| </footer> |
| </div> |
|
|
| <script src="i18n.js?v=dev-skills-v1"></script> |
| <script src="i18n-runtime.js?v=dev-skills-v1"></script> |
| </body> |
| </html> |
|
|