Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/00_overview/DASHBOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ _Top-level index across MVP1 → GA v1+ as of **2026-05-23**. Click a release na

| Release | Theme | Progress | Status |
|---|---|---|---|
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 69 / 70 scoped done · 6 remaining | **In progress** |
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 70 / 70 scoped done · 5 remaining | **In progress** |
| [MVP1.5 / v0.1.5](MVP1_5_DASHBOARD.md) | Real Signals | 1 item(s) queued | **Held / queued** |
| [MVP2 / v0.2](MVP2_DASHBOARD.md) | Observable | 1 / 1 scoped done · 1 remaining | **In progress** |
| MVP3 / v0.3 | Production Stacks | — | **Not yet scoped** |
Expand Down
31 changes: 12 additions & 19 deletions docs/00_overview/MVP1_DASHBOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,28 @@ _Reflects feature-folder state as of **2026-05-23** (latest mtime of any planned

## Next up

**[chore_migration_test_head_brittleness](../02_product/planned_features/chore_migration_test_head_brittleness/feature_spec.md)** — Chore, currently in **Plan**
All scoped MVP1 features shipped 🎉

> Replace the two hardcoded `"0017"` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id.

Plan approved; run /impl-execute to ship

```bash
/impl-execute docs/02_product/planned_features/chore_migration_test_head_brittleness/implementation_plan.md --all
```
Pull from the Idea backlog or capture a new feature spec.

## MVP1 Progress

| Metric | Value |
|---|---|
| Scoped items done | **69 / 70** (99%) — feat_/infra_/chore_/epic_ past idea stage |
| Pending work | **13** items (every not-done feat/infra/chore/bug across all priorities) |
| Scoped items done | **70 / 70** (100%) — feat_/infra_/chore_/epic_ past idea stage |
| Pending work | **12** items (every not-done feat/infra/chore/bug across all priorities) |
| → P0 — do next | **0** unblocking / paying daily cost |
| → P1 | **0** high-value, ready when P0 clears |
| → P2 (default) | 12 important to file, not blocking |
| → P2 (default) | 11 important to file, not blocking |
| → Backlog | 1 captured for record, not planned |
| Open bugs | 0 |
| Legacy "Path to MVP1" | 6 items — scoped-not-done + bugs + chore-ideas only (excludes feat/infra ideas) |
| Legacy "Path to MVP1" | 5 items — scoped-not-done + bugs + chore-ideas only (excludes feat/infra ideas) |
| Backlog ideas | 7 idea-only feat/infra (not yet scoped into MVP1) |
| In flight | 0 feature(s) actively shipping |

## Pipeline

### Done (86)
### Done (87)

| Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|
Expand Down Expand Up @@ -94,6 +88,7 @@ Plan approved; run /impl-execute to ship
| [chore_guides_faq](implemented_features/2026_05_22_chore_guides_faq/idea.md) | Chore | Complete | — | Complete |
| [chore_guides_glossary_route](implemented_features/2026_05_22_chore_guides_glossary_route/feature_spec.md) | Chore | the [`/guide`](../../ui/src/app/guide/page.tsx) catalog page gains a third section — **Glossary** — that renders every entry in a single browsable, searchable, deep-linkable page at `/guide/glossary`. | — | Draft |
| [chore_infra_foundation_github_token_file_retirement](implemented_features/2026_05_13_chore_infra_foundation_github_token_file_retirement/idea.md) | Chore | Complete | — | Complete |
| [chore_migration_test_head_brittleness](implemented_features/2026_05_23_chore_migration_test_head_brittleness/feature_spec.md) | Chore | Replace the two hardcoded `"0017"` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id. | — | [PR #219](https://github.com/SoundMindsAI/relyloop/pull/219) merged 2026-05-23 |
| [chore_openapi_contract_validation](implemented_features/2026_05_13_chore_openapi_contract_validation/idea.md) | Chore | Complete | — | Complete |
| [chore_precommit_node_path_resolution](implemented_features/2026_05_21_chore_precommit_node_path_resolution/idea.md) | Chore | Complete | — | Complete |
| [chore_proposals_list_wire_param_e2e_test](implemented_features/2026_05_13_chore_proposals_list_wire_param_e2e_test/idea.md) | Chore | Complete | — | Complete |
Expand Down Expand Up @@ -128,11 +123,9 @@ Plan approved; run /impl-execute to ship

_None._

### Plan (1)
### Plan (0)

| # | Priority | Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|---|---|
| 1 | P2 | [chore_migration_test_head_brittleness](../02_product/planned_features/chore_migration_test_head_brittleness/feature_spec.md) | Chore | Replace the two hardcoded `"0017"` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id. | — | — |
_None._

### Spec (0)

Expand Down Expand Up @@ -166,8 +159,6 @@ graph LR
classDef plan fill:#fef9c3,stroke:#854d0e,color:#854d0e;
classDef spec fill:#dbeafe,stroke:#1e40af,color:#1e40af;
classDef idea fill:#f1f5f9,stroke:#334155,color:#334155;
chore_migration_test_head_brittleness["migration test head brittleness"]
class chore_migration_test_head_brittleness plan;
infra_foundation["foundation"]
class infra_foundation done;
feat_study_lifecycle["study lifecycle"]
Expand Down Expand Up @@ -298,6 +289,8 @@ graph LR
class feat_orchestrator_zero_streak_abort done;
feat_study_preflight_overlap_probe["study preflight overlap probe"]
class feat_study_preflight_overlap_probe done;
chore_migration_test_head_brittleness["migration test head brittleness"]
class chore_migration_test_head_brittleness done;
chore_reconciler_terminal_closed_no_poll["reconciler terminal closed no poll"]
class chore_reconciler_terminal_closed_no_poll done;
chore_study_default_stop_conditions["study default stop conditions"]
Expand Down
2 changes: 1 addition & 1 deletion docs/00_overview/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ <h2>Releases</h2>
<div class="roadmap-row">
<div class="release-name"><a href="mvp1_dashboard.html">MVP1 / v0.1</a></div>
<div class="theme">The Loop</div>
<div class="progress">69 / 70 scoped done · 6 remaining</div>
<div class="progress">70 / 70 scoped done · 5 remaining</div>
<span class="state-pill in_progress">In progress</span>
</div>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Feature Specification — `test_migrations.py` dynamic head lookup

**Date:** 2026-05-23
**Status:** Draft
**Status:** Implemented (PR #219 squash-merged as `63cb7c41` on 2026-05-23)
**Owners:** Eric Starr (engineering)
**Related docs:**
- [`idea.md`](idea.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Implementation Plan — `test_migrations.py` dynamic head lookup

**Date:** 2026-05-23
**Status:** Draft
**Status:** Complete (PR #219 squash-merged as `63cb7c41` on 2026-05-23)
**Primary spec:** [`feature_spec.md`](feature_spec.md)
**Policy source(s):** [`CLAUDE.md`](../../../../CLAUDE.md) Absolute Rule #5 (migrations include `downgrade()` and round-trip cleanly); [`docs/05_quality/testing.md`](../../../05_quality/testing.md) (integration test layer).

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Pipeline Status — chore_migration_test_head_brittleness

## Idea
- Status: Complete
- File: idea.md
- Preflight: passed 2026-05-23 (2 patches — Origin link refresh, decision lock for Option A)

## Spec
- Status: Approved
- Date: 2026-05-23
- File: feature_spec.md
- Cross-model review: GPT-5.5 passed (1 cycle, 5 findings: 0 High / 1 Medium / 4 Low — all accepted as minor clarity/precision improvements, no major contract or data changes)
- Phases: 1 (single phase, single PR)

## Plan
- Status: Approved
- Date: 2026-05-23
- File: implementation_plan.md
- Cross-model review: GPT-5.5 passed (1 cycle, 1 finding: 0 High / 1 Medium / 0 Low — Medium accepted and applied — DoD grep arithmetic fixed)
- Stories: 2 across 1 epic
- Phases covered: 1 (single phase, single PR)

## Implementation
- Status: Complete
- Date: 2026-05-23
- PR: #219 (squash-merged as `63cb7c41` to `main`)
- CI: green (5 jobs on both pushes — lint + typecheck + unit + integration + contract + Docker build + frontend + smoke)
- Stories completed: 2/2 (1.1 helper + 1.2 assertion replacement)
- Gemini review: 2 Medium findings, both accepted and applied in `77495d0a` (reuse `_alembic("heads")` helper in code + matching plan update)
- Final GPT-5.5 review: 2 findings (0 High / 1 Medium / 1 Low) — Medium rejected with cited counter-evidence (tangential-discovery capture pattern is explicitly authorized by CLAUDE.md + `impl-execute` Step 2.5), Low deferred to this finalization PR (pipeline_status.md transition)
- AC-4 manual verification: passed (stub migration `0018` → tests pass at head=0018 → stub removed → tests pass at head=0017; documented in PR body)
- Tangential capture: `chore_e2e_seed_acme_idea_obsolete/` — original `chore_e2e_seed_acme_helper_dead` idea is obsolete because Path B effectively shipped via guide-06 spec
63 changes: 32 additions & 31 deletions docs/00_overview/mvp1_dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -382,28 +382,28 @@ <h1>RelyLoop MVP1 Dashboard</h1>
<main>

<section>
<div class="next-up">
<div class="eyebrow">Next up — Chore, currently in <strong>Plan</strong></div>
<div class="title"><a href="../../docs/02_product/planned_features/chore_migration_test_head_brittleness/feature_spec.md">Migration Test Head Brittleness</a></div>
<div class="one-liner">Replace the two hardcoded `&quot;0017&quot;` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id.</div>
<div class="stage-hint">Plan approved; run /impl-execute to ship</div>
<code class="cmd">/impl-execute docs/02_product/planned_features/chore_migration_test_head_brittleness/implementation_plan.md --all</code>
<div class="next-up done">
<div class="eyebrow">Next up</div>
<div class="title">All scoped MVP1 features shipped 🎉</div>
<div class="one-liner">
Pull from the Idea backlog or capture a new feature spec.
</div>
</div>
</section>


<section>
<h2>MVP1 Progress</h2>
<div class="kpi-row">
<div class="kpi ">
<div class="kpi complete">
<div class="label">Scoped items done</div>
<div class="value">69 / 70</div>
<div class="sub">99% of feat_/infra_/chore_/epic_ items past idea stage</div>
<div class="bar"><span style="width:99%"></span></div>
<div class="value">70 / 70</div>
<div class="sub">100% of feat_/infra_/chore_/epic_ items past idea stage</div>
<div class="bar"><span style="width:100%"></span></div>
</div>
<div class="kpi warn">
<div class="label">Pending work</div>
<div class="value">13</div>
<div class="value">12</div>
<div class="sub">every not-done feat/infra/chore/bug across all priorities</div>
</div>
<div class="kpi ">
Expand All @@ -425,7 +425,7 @@ <h2>MVP1 Progress</h2>
</div>
<div class="kpi">
<div class="label">P2 (default)</div>
<div class="value">12</div>
<div class="value">11</div>
<div class="sub">important to file, not blocking</div>
</div>
<div class="kpi">
Expand All @@ -435,7 +435,7 @@ <h2>MVP1 Progress</h2>
</div>
<div class="kpi">
<div class="label">Legacy "Path to MVP1"</div>
<div class="value">6</div>
<div class="value">5</div>
<div class="sub">scoped not-done + bugs + chore-ideas only (excludes feat/infra ideas)</div>
</div>
</div>
Expand Down Expand Up @@ -628,19 +628,7 @@ <h3>Spec <span class="count">0</span></h3>
</div>

<div class="col plan">
<h3>Plan <span class="count">1</span></h3>

<div class="card chore" data-prefix="chore" data-priority="P2">
<div class="name"><a href="../../docs/02_product/planned_features/chore_migration_test_head_brittleness/feature_spec.md">Migration Test Head Brittleness</a></div>
<div class="meta">
<span class="badge chore">Chore</span>
<span class="badge priority" data-priority="P2">P2</span>

</div>
<div class="one-liner">Replace the two hardcoded `&quot;0017&quot;` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id.</div>


</div>
<h3>Plan <span class="count">0</span></h3>

</div>

Expand All @@ -650,7 +638,7 @@ <h3>Implementing <span class="count">0</span></h3>
</div>

<div class="col done">
<h3>Done <span class="count">86</span></h3>
<h3>Done <span class="count">87</span></h3>

<div class="card feat" data-prefix="feat" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_21_feat_agent_propose_search_space/feature_spec.md">Agent Propose Search Space</a></div>
Expand Down Expand Up @@ -1393,6 +1381,19 @@ <h3>Done <span class="count">86</span></h3>
</div>


<div class="card chore" data-prefix="chore" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_23_chore_migration_test_head_brittleness/feature_spec.md">Migration Test Head Brittleness</a></div>
<div class="meta">
<span class="badge chore">Chore</span>

<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/219">PR #219</a> <span>merged 2026-05-23</span>
</div>
<div class="one-liner">Replace the two hardcoded `&quot;0017&quot;` literals with a dynamic `_current_head()` helper that shells out to `uv run alembic heads` and returns the current head revision id.</div>


</div>


<div class="card chore" data-prefix="chore" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_13_chore_openapi_contract_validation">Openapi Contract Validation</a></div>
<div class="meta">
Expand Down Expand Up @@ -1782,8 +1783,6 @@ <h2>Dependency graph (feat_ + infra_)</h2>
classDef plan fill:#fef9c3,stroke:#854d0e,color:#854d0e;
classDef spec fill:#dbeafe,stroke:#1e40af,color:#1e40af;
classDef idea fill:#f1f5f9,stroke:#334155,color:#334155;
chore_migration_test_head_brittleness[&quot;migration test head brittleness&quot;]
class chore_migration_test_head_brittleness plan;
infra_foundation[&quot;foundation&quot;]
class infra_foundation done;
feat_study_lifecycle[&quot;study lifecycle&quot;]
Expand Down Expand Up @@ -1914,6 +1913,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_orchestrator_zero_streak_abort done;
feat_study_preflight_overlap_probe[&quot;study preflight overlap probe&quot;]
class feat_study_preflight_overlap_probe done;
chore_migration_test_head_brittleness[&quot;migration test head brittleness&quot;]
class chore_migration_test_head_brittleness done;
chore_reconciler_terminal_closed_no_poll[&quot;reconciler terminal closed no poll&quot;]
class chore_reconciler_terminal_closed_no_poll done;
chore_study_default_stop_conditions[&quot;study default stop conditions&quot;]
Expand Down Expand Up @@ -1975,8 +1976,6 @@ <h2>Dependency graph (feat_ + infra_)</h2>
classDef plan fill:#fef9c3,stroke:#854d0e,color:#854d0e;
classDef spec fill:#dbeafe,stroke:#1e40af,color:#1e40af;
classDef idea fill:#f1f5f9,stroke:#334155,color:#334155;
chore_migration_test_head_brittleness[&quot;migration test head brittleness&quot;]
class chore_migration_test_head_brittleness plan;
infra_foundation[&quot;foundation&quot;]
class infra_foundation done;
feat_study_lifecycle[&quot;study lifecycle&quot;]
Expand Down Expand Up @@ -2107,6 +2106,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_orchestrator_zero_streak_abort done;
feat_study_preflight_overlap_probe[&quot;study preflight overlap probe&quot;]
class feat_study_preflight_overlap_probe done;
chore_migration_test_head_brittleness[&quot;migration test head brittleness&quot;]
class chore_migration_test_head_brittleness done;
chore_reconciler_terminal_closed_no_poll[&quot;reconciler terminal closed no poll&quot;]
class chore_reconciler_terminal_closed_no_poll done;
chore_study_default_stop_conditions[&quot;study default stop conditions&quot;]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Date:** 2026-05-23
**Status:** Idea — surfaced during `chore_migration_test_head_brittleness` `/idea-preflight` pick (2026-05-23)
**Priority:** P3 — doc-only cleanup; no behavioral impact. 5–10 LOC + a coverage-audit refresh.
**Priority:** P2 — doc-only cleanup; no behavioral impact. 5–10 LOC + a coverage-audit refresh. (Note: dashboard regen at [`scripts/build_mvp1_dashboard.py:240-245`](../../../../scripts/build_mvp1_dashboard.py#L240) only recognizes P0/P1/P2/Backlog and coerces anything else to P2; an earlier draft used "P3" which the dashboard rendered as P2 anyway. Setting to P2 explicitly to keep the idea-file and dashboard tier columns aligned — surfaced by Gemini Code Assist on PR #220.)
**Origin:** While running `/idea-preflight` against [`chore_e2e_seed_acme_helper_dead/idea.md`](../chore_e2e_seed_acme_helper_dead/idea.md) to pick a non-overlapping feature for `feat_auto_followup_studies`, I discovered the idea's central premise is contradicted by current code: `seedAcmeProductsChain` now has a real Playwright caller at [`ui/tests/e2e/guides/06_create_and_monitor_study.spec.ts:28`](../../../../ui/tests/e2e/guides/06_create_and_monitor_study.spec.ts#L28) (`import { seedAcmeProductsChain } from '../helpers/seed';` and `await seedAcmeProductsChain();` at line 34). The spec uses the chain's `studyId` and `studyName` to render guide screenshots against a realistic "Acme Products" seeded study.
**Depends on:** None.

Expand Down

This file was deleted.

Loading