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-16**. Click a release na

| Release | Theme | Progress | Status |
|---|---|---|---|
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 37 / 38 scoped done · 3 remaining | **In progress** |
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 38 / 38 scoped done · 2 remaining | **In progress** |
| [MVP2 / v0.2](MVP2_DASHBOARD.md) | Observable | 1 / 1 scoped done · 1 remaining | **In progress** |
| MVP3 / v0.3 | Production Stacks | — | **Not yet scoped** |
| MVP4 / v0.4 | Multi-tenant, Multi-LLM | — | **Not yet scoped** |
Expand Down
25 changes: 10 additions & 15 deletions docs/00_overview/MVP1_DASHBOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,30 @@ _Reflects feature-folder state as of **2026-05-16** (latest mtime of any planned

## Next up

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

Plan approved; run /impl-execute to ship

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

## MVP1 Progress

| Metric | Value |
|---|---|
| Scoped items done | **37 / 38** (97%) — feat_/infra_/chore_/epic_ past idea stage |
| Path to MVP1 | **3** items remaining (features + bugs + chores) |
| Scoped items done | **38 / 38** (100%) — feat_/infra_/chore_/epic_ past idea stage |
| Path to MVP1 | **2** items remaining (features + bugs + chores) |
| Open bugs | 1 |
| Open chores | 1 (idea-stage debt) |
| Backlog ideas | 1 idea-only feat/infra (not yet scoped into MVP1) |
| In flight | 0 feature(s) actively shipping |

## Pipeline

### Done (45)
### Done (46)

| Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|
| [feat_chat_agent](implemented_features/2026_05_12_feat_chat_agent/feature_spec.md) | Feature | A chat surface at `/chat/{conversation_id}` streams OpenAI completions via SSE. | `feat_contextual_help` `feat_contextual_help_mvp2` `feat_data_table_primitive` `feat_digest_proposal` `feat_fts_rank_ordering_mvp2` `feat_github_pr_worker` `feat_github_webhook` `feat_judgments_periodic_resume_sweep` `feat_llm_judgments` `feat_proposals_ui` `feat_query_inline_crud` `feat_studies_ui` `feat_study_lifecycle` `infra_adapter_elastic` `infra_arq_subprocess_test_mvp2` `infra_ci_smoke_makeup` `infra_dashboard_regen_pre_commit_conflict` `infra_e2e_seed_completed_study` `infra_foundation` `infra_frontend_stack_refresh` `infra_make_targets_split_backend_only` `infra_nvmrc` `infra_optuna_eval` `infra_per_trial_timeout` `infra_structlog_test_helpers` | [PR #60](https://github.com/SoundMindsAI/relyloop/pull/60) merged 2026-05-12 |
| [feat_contextual_help](implemented_features/2026_05_15_feat_contextual_help/feature_spec.md) | Feature | a relevance engineer can launch their second study and interpret its digest without re-reading the tutorial, because every domain-jargon label has a one-click contextual definition grounded in the sam | — | [PR #122](https://github.com/SoundMindsAI/relyloop/pull/122) merged 2026-05-15 |
| [feat_data_table_primitive](implemented_features/2026_05_16_feat_data_table_primitive/feature_spec.md) | Feature | Complete (PR #126, merged 2026-05-16) | — | [PR #126](https://github.com/SoundMindsAI/relyloop/pull/126) merged 2026-05-16 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The dashboard entry for feat_data_table_primitive has two metadata issues:

  1. The One-liner column contains a status string ("Complete...") instead of a feature description, likely because the generator fell back to the implementation status when it couldn't find a summary in the source files.
  2. The Depends on column is empty, but the feature's idea.md and feature_spec.md both document a dependency on feat_contextual_help.
Suggested change
| [feat_data_table_primitive](implemented_features/2026_05_16_feat_data_table_primitive/feature_spec.md) | Feature | Complete (PR #126, merged 2026-05-16) | | [PR #126](https://github.com/SoundMindsAI/relyloop/pull/126) merged 2026-05-16 |
| [feat_data_table_primitive](implemented_features/2026_05_16_feat_data_table_primitive/feature_spec.md) | Feature | A shared <DataTable> primitive with FTS, sort, filter, and URL-state sync, consolidating 8 hand-rolled tables. | `feat_contextual_help` | [PR #126](https://github.com/SoundMindsAI/relyloop/pull/126) merged 2026-05-16 |

| [feat_digest_proposal](implemented_features/2026_05_11_feat_digest_proposal/feature_spec.md) | Feature | When a study transitions to `completed`, the digest worker generates: a narrative summary (LLM-authored), a parameter-importance map (computed by `optuna.importance`), and a recommended config. | `feat_study_lifecycle` `feat_llm_judgments` | [PR #41](https://github.com/SoundMindsAI/relyloop/pull/41) merged 2026-05-11 |
| [feat_github_pr_worker](implemented_features/2026_05_12_feat_github_pr_worker/feature_spec.md) | Feature | `POST /api/v1/proposals/{id}/open_pr` enqueues a Git worker job that clones the configured repo, edits `*.params.json`, commits with a structured message, pushes a branch, opens a GitHub PR, attaches | `infra_foundation` `infra_adapter_elastic` `feat_study_lifecycle` `feat_digest_proposal` | [PR #45](https://github.com/SoundMindsAI/relyloop/pull/45) merged 2026-05-12 |
| [feat_github_webhook](implemented_features/2026_05_12_feat_github_webhook/feature_spec.md) | Feature | GitHub posts to `POST /webhooks/github` with HMAC-SHA256 signature; the receiver verifies the signature, looks up the proposal by `pr_url`, updates `pr_state` and `pr_merged_at`. | `infra_foundation` `infra_adapter_elastic` `feat_github_pr_worker` | [PR #56](https://github.com/SoundMindsAI/relyloop/pull/56) merged 2026-05-12 |
Expand Down Expand Up @@ -81,11 +78,9 @@ Plan approved; run /impl-execute to ship

_None._

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

| Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|
| [feat_data_table_primitive](../02_product/planned_features/feat_data_table_primitive/feature_spec.md) | Feature | | — | [PR #122](https://github.com/SoundMindsAI/relyloop/pull/122) merged 2026-05-15 |
_None._

### Spec (0)

Expand All @@ -110,8 +105,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;
feat_data_table_primitive["data table primitive"]
class feat_data_table_primitive plan;
infra_foundation["foundation"]
class infra_foundation done;
feat_study_lifecycle["study lifecycle"]
Expand Down Expand Up @@ -186,6 +179,8 @@ graph LR
class infra_structlog_test_helpers done;
feat_contextual_help["contextual help"]
class feat_contextual_help done;
feat_data_table_primitive["data table primitive"]
class feat_data_table_primitive done;
feat_study_lifecycle --> feat_digest_proposal
feat_llm_judgments --> feat_digest_proposal
infra_foundation --> feat_llm_judgments
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 @@ -371,7 +371,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">37 / 38 scoped done · 3 remaining</div>
<div class="progress">38 / 38 scoped done · 2 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 @@
# Implementation Plan — Shared `<DataTable>` primitive (FTS + sort + filter + URL state)

**Date:** 2026-05-15
**Status:** Draft
**Status:** Complete (PR #126, merged 2026-05-16)
**Primary spec:** [feature_spec.md](./feature_spec.md)
**Policy source(s):**
- [`docs/01_architecture/api-conventions.md`](../../../01_architecture/api-conventions.md) — cursor pagination + `X-Total-Count` + error envelope
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,17 @@
- Phases covered: single-phase delivery per Locked Decision #4. No deferred phases.

## Implementation
- Status: Not started
- Status: Complete
- Date: 2026-05-16
- PR: [#126](https://github.com/SoundMindsAI/relyloop/pull/126) (squash commit `d6115b3`, merged 2026-05-16)
- CI: all 7 checks green on cycle 4 — backend lint + typecheck + tests + coverage, backend unit fast lane, docker buildx, frontend lint + typecheck + tests + build, gitleaks, secrets files guard, smoke (operator-path E2E)
- Stories completed: 28 / 28 (Epic 1: 5 backend stories, Epic 2: 13 primitive stories, Epic 3: 9 table-migration stories incl. Story 3.9 inheritor, Epic 4: 2 docs/idea-capture stories)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is an arithmetic discrepancy in the story count. The breakdown provided (5 + 13 + 9 + 2) sums to 29 stories, but the total is listed as 28 / 28. Based on the implementation plan which includes stories 3.1 through 3.9, the total should be 29.

Suggested change
- Stories completed: 28 / 28 (Epic 1: 5 backend stories, Epic 2: 13 primitive stories, Epic 3: 9 table-migration stories incl. Story 3.9 inheritor, Epic 4: 2 docs/idea-capture stories)
- Stories completed: 29 / 29 (Epic 1: 5 backend stories, Epic 2: 13 primitive stories, Epic 3: 9 table-migration stories incl. Story 3.9 inheritor, Epic 4: 2 docs/idea-capture stories)

- Cross-model review:
- 3 Epic-2 phase-gate GPT-5.5 cycles (15 + 7 + 3 findings) — converged with 13 fixes applied, 7 deferred to `chore_data_table_primitive_followups`, 4 rejected with cited counter-evidence

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The findings tally in this line is inconsistent. The cycle breakdown (15 + 7 + 3) sums to 25, but the outcome breakdown 13 fixes + 7 deferred + 4 rejected sums to 24. Additionally, line 23 of this file states the Plan review converged with 24 total findings (13 + 7 + 4). This line should be updated to match the Plan review results.

Suggested change
- 3 Epic-2 phase-gate GPT-5.5 cycles (15 + 7 + 3 findings) — converged with 13 fixes applied, 7 deferred to `chore_data_table_primitive_followups`, 4 rejected with cited counter-evidence
- 3 Epic-2 phase-gate GPT-5.5 cycles (13 + 7 + 4 findings) — converged with 13 fixes applied, 7 deferred to `chore_data_table_primitive_followups`, 4 rejected with cited counter-evidence

- 1 Epic-3 phase-gate GPT-5.5 cycle (7 findings) — 5 accepted + fixed, 2 rejected with cited counter-evidence
- Final cross-model GPT-5.5 review on full PR diff: 2 findings — 1 accepted + fixed (`test-llm-rater` fixture), 1 deferred to `bug_cursor_decode_value_validation`
- Gemini Code Assist: 7 line-level findings, all 7 accepted + fixed (commit `acfd304`). Adjudication summary posted as PR comment.
- Deferred follow-ups captured:
- [`feat_fts_rank_ordering_mvp2`](../feat_fts_rank_ordering_mvp2/idea.md) — rank-ordered FTS results (per spec §16)
- [`chore_data_table_primitive_followups`](../chore_data_table_primitive_followups/idea.md) — 6 review-cycle items
- [`bug_cursor_decode_value_validation`](../bug_cursor_decode_value_validation/idea.md) — cursor payload validation
57 changes: 29 additions & 28 deletions docs/00_overview/mvp1_dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -369,28 +369,28 @@ <h1>RelyLoop MVP1 Dashboard</h1>
<main>

<section>
<div class="next-up">
<div class="eyebrow">Next up — Feature, currently in <strong>Plan</strong></div>
<div class="title"><a href="../../docs/02_product/planned_features/feat_data_table_primitive/feature_spec.md">Data Table Primitive</a></div>
<div class="one-liner"></div>
<div class="stage-hint">Plan approved; run /impl-execute to ship</div>
<code class="cmd">/impl-execute docs/02_product/planned_features/feat_data_table_primitive/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">37 / 38</div>
<div class="sub">97% of feat_/infra_/chore_/epic_ items past idea stage</div>
<div class="bar"><span style="width:97%"></span></div>
<div class="value">38 / 38</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">Path to MVP1</div>
<div class="value">3</div>
<div class="value">2</div>
<div class="sub">items left = features + bugs + chores</div>
</div>
<div class="kpi bug">
Expand Down Expand Up @@ -473,18 +473,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 feat" data-prefix="feat">
<div class="name"><a href="../../docs/02_product/planned_features/feat_data_table_primitive/feature_spec.md">Data Table Primitive</a></div>
<div class="meta">
<span class="badge feat">Feature</span>
<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/122">PR #122</a><span>merged 2026-05-15</span>
</div>
<div class="one-liner"></div>


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

</div>

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

<div class="col done">
<h3>Done <span class="count">45</span></h3>
<h3>Done <span class="count">46</span></h3>

<div class="card feat" data-prefix="feat">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_12_feat_chat_agent/feature_spec.md">Chat Agent</a></div>
Expand All @@ -520,6 +509,18 @@ <h3>Done <span class="count">45</span></h3>
</div>


<div class="card feat" data-prefix="feat">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_16_feat_data_table_primitive/feature_spec.md">Data Table Primitive</a></div>
<div class="meta">
<span class="badge feat">Feature</span>
<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/126">PR #126</a><span>merged 2026-05-16</span>
</div>
<div class="one-liner">Complete (PR #126, merged 2026-05-16)</div>


</div>


<div class="card feat" data-prefix="feat">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_11_feat_digest_proposal/feature_spec.md">Digest Proposal</a></div>
<div class="meta">
Expand Down Expand Up @@ -1048,8 +1049,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;
feat_data_table_primitive[&quot;data table primitive&quot;]
class feat_data_table_primitive plan;
infra_foundation[&quot;foundation&quot;]
class infra_foundation done;
feat_study_lifecycle[&quot;study lifecycle&quot;]
Expand Down Expand Up @@ -1124,6 +1123,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class infra_structlog_test_helpers done;
feat_contextual_help[&quot;contextual help&quot;]
class feat_contextual_help done;
feat_data_table_primitive[&quot;data table primitive&quot;]
class feat_data_table_primitive done;
feat_study_lifecycle --&gt; feat_digest_proposal
feat_llm_judgments --&gt; feat_digest_proposal
infra_foundation --&gt; feat_llm_judgments
Expand Down Expand Up @@ -1199,8 +1200,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;
feat_data_table_primitive[&quot;data table primitive&quot;]
class feat_data_table_primitive plan;
infra_foundation[&quot;foundation&quot;]
class infra_foundation done;
feat_study_lifecycle[&quot;study lifecycle&quot;]
Expand Down Expand Up @@ -1275,6 +1274,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class infra_structlog_test_helpers done;
feat_contextual_help[&quot;contextual help&quot;]
class feat_contextual_help done;
feat_data_table_primitive[&quot;data table primitive&quot;]
class feat_data_table_primitive done;
feat_study_lifecycle --&gt; feat_digest_proposal
feat_llm_judgments --&gt; feat_digest_proposal
infra_foundation --&gt; feat_llm_judgments
Expand Down
Loading