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

| Release | Theme | Progress | Status |
|---|---|---|---|
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 79 / 81 scoped done · 17 remaining | **In progress** |
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 80 / 81 scoped done · 16 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
21 changes: 10 additions & 11 deletions docs/00_overview/MVP1_DASHBOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,20 @@ Implementation in progress — resume to finish

| Metric | Value |
|---|---|
| Scoped items done | **79 / 81** (98%) — feat_/infra_/chore_/epic_ past idea stage |
| Pending work | **18** items (every not-done feat/infra/chore/bug across all priorities) |
| Scoped items done | **80 / 81** (99%) — feat_/infra_/chore_/epic_ past idea stage |
| Pending work | **17** 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) | 17 important to file, not blocking |
| → P2 (default) | 16 important to file, not blocking |
| → Backlog | 1 captured for record, not planned |
| Open bugs | 8 |
| Legacy "Path to MVP1" | 17 items — scoped-not-done + bugs + chore-ideas only (excludes feat/infra ideas) |
| Legacy "Path to MVP1" | 16 items — scoped-not-done + bugs + chore-ideas only (excludes feat/infra ideas) |
| Backlog ideas | 1 idea-only feat/infra (not yet scoped into MVP1) |
| In flight | 1 feature(s) actively shipping |

## Pipeline

### Done (98)
### Done (99)

| Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|
Expand Down Expand Up @@ -88,6 +88,7 @@ Implementation in progress — resume to finish
| [chore_create_study_modal_e2e_stability](implemented_features/2026_05_20_chore_create_study_modal_e2e_stability/idea.md) | Chore | The Playwright smoke lane runs every `ui/tests/e2e/*.spec.ts` against a real-backend stack. The create-study modal's Step-1 cluster trigger (rendered by [`EntitySelect`](../../ui/src/components/common | — | [PR #161](https://github.com/SoundMindsAI/relyloop/pull/161) merged 2026-05-20 |
| [chore_create_study_wizard_polish](implemented_features/2026_05_20_chore_create_study_wizard_polish/feature_spec.md) | Chore | Step 4 auto-fills from the template's `declared_params` with conservative ranges, rejects unknown/missing params at create time with new machine-readable error codes, and surfaces four new glossary en | — | [PR #157](https://github.com/SoundMindsAI/relyloop/pull/157) merged 2026-05-20 |
| [chore_dashboard_pr_extraction_from_idea](implemented_features/2026_05_23_chore_dashboard_pr_extraction_from_idea/feature_spec.md) | Chore | Extend `_extract_pr_number` to accept the idea body as a fourth argument, and have `_load_implemented` read `idea.md` and pass it through. | — | [PR #221](https://github.com/SoundMindsAI/relyloop/pull/221) merged 2026-05-23 |
| [chore_dashboard_regen_quoted_pr_false_positive](implemented_features/2026_05_25_chore_dashboard_regen_quoted_pr_false_positive/feature_spec.md) | Chore | Priority-3 fuzzy match no longer matches PR-merge phrases that live inside backtick-fenced segments. | — | [PR #253](https://github.com/SoundMindsAI/relyloop/pull/253) merged 2026-05-25 |
| [chore_data_table_columnvisibility_tanstack](implemented_features/2026_05_19_chore_data_table_columnvisibility_tanstack/idea.md) | Chore | `feat_data_table_primitive` shipped with six known non-regression follow-up items captured only in chat transcripts. None block the PR but each is a real improvement that would otherwise evaporate whe | — | Complete |
| [chore_detail_page_shell_primitive](implemented_features/2026_05_19_chore_detail_page_shell_primitive/idea.md) | Chore | Six of the seven `/{entity}/[id]` detail routes hand-roll the same three-state scaffold around their data query. The structure is **identical** down to the className strings, with two minor copy varia | — | Complete |
| [chore_digest_worker_narrow_except](implemented_features/2026_05_14_chore_digest_worker_narrow_except/idea.md) | Chore | … | — | Complete |
Expand Down Expand Up @@ -142,11 +143,9 @@ Implementation in progress — resume to finish
|---|---|---|---|---|---|---|
| 1 | P2 | [infra_agent_sibling_worktree_isolation](../02_product/planned_features/infra_agent_sibling_worktree_isolation/feature_spec.md) | Infra | Add a tight "Working in sibling worktrees" section to `CLAUDE.md` between `## Common Pitfalls` and `## Bug Fix Protocol` that catalogs which host paths are bind-mounted by the Compose stack (and there | — | [PR #249](https://github.com/SoundMindsAI/relyloop/pull/249) merged 2026-05-25 |

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

| # | Priority | Feature | Type | One-liner | Depends on | Status |
|---|---|---|---|---|---|---|
| 1 | P2 | [chore_dashboard_regen_quoted_pr_false_positive](../02_product/planned_features/chore_dashboard_regen_quoted_pr_false_positive/feature_spec.md) | Chore | Priority-3 fuzzy match no longer matches PR-merge phrases that live inside backtick-fenced segments. | — | [PR #221](https://github.com/SoundMindsAI/relyloop/pull/221) merged 2026-05-25 |
_None._

### Spec (0)

Expand Down Expand Up @@ -184,8 +183,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_dashboard_regen_quoted_pr_false_positive["dashboard regen quoted pr false positive"]
class chore_dashboard_regen_quoted_pr_false_positive plan;
infra_agent_sibling_worktree_isolation["agent sibling worktree isolation"]
class infra_agent_sibling_worktree_isolation implement;
infra_foundation["foundation"]
Expand Down Expand Up @@ -338,6 +335,8 @@ graph LR
class feat_digest_executable_followups_swap_template done;
feat_home_demo_reseed_endpoint["home demo reseed endpoint"]
class feat_home_demo_reseed_endpoint done;
chore_dashboard_regen_quoted_pr_false_positive["dashboard regen quoted pr false positive"]
class chore_dashboard_regen_quoted_pr_false_positive done;
chore_e2e_seed_acme_idea_obsolete["e2e seed acme idea obsolete"]
class chore_e2e_seed_acme_idea_obsolete done;
feat_study_baseline_trial["study baseline trial"]
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">79 / 81 scoped done · 17 remaining</div>
<div class="progress">80 / 81 scoped done · 16 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 — chore_dashboard_regen_quoted_pr_false_positive

**Date:** 2026-05-25
**Status:** Ready for Execution
**Status:** Complete (PR #253 merged 2026-05-25 as squash `20bcb36d`; PR B finalization in flight)
**Primary spec:** [`feature_spec.md`](feature_spec.md)
**Policy source(s):** [`CLAUDE.md`](../../../../CLAUDE.md) — two-PR finalization pattern, never `--no-verify`; [`impl-execute SKILL.md`](../../../../.claude/skills/impl-execute/SKILL.md) — Step 7 finalization

Expand Down Expand Up @@ -319,14 +319,16 @@ No new test files (additive to the existing `test_dashboard_pr_extraction.py`).

| Story | Status | Commit SHA |
|---|---|---|
| 1.1 — Add `_strip_backtick_quoted_segments` helper | [ ] | — |
| 1.2 — Wire helper into `_extract_pr_number` priority-3 | [ ] | — |
| 1.3 — Add `TestBacktickStripPriority3` class (7 methods) | [ ] | — |
| 1.4 — Insert docstring note about backtick strip | [ ] | — |
| Epic 1 phase gate | [ ] | — |
| **PR A** | [ ] | — |
| 2.1 — git mv + state.md update | [ ] | — |
| **PR B** | [ ] | — |
| 1.1 — Add `_strip_backtick_quoted_segments` helper | [x] | `9d127fb9` |
| 1.2 — Wire helper into `_extract_pr_number` priority-3 | [x] | `65db54e2` |
| 1.3 — Add `TestBacktickStripPriority3` class (8 methods — AC-13 added per phase-gate) | [x] | `80190f43` + `f5dd98b3` (AC-13 + backref regex) |
| 1.4 — Insert docstring note about backtick strip | [x] | `e50537f5` |
| Epic 1 phase gate | [x] | GPT-5.5 cumulative review: 1 Medium accepted (`f5dd98b3` backref + AC-13) |
| Final GPT-5.5 review | [x] | 1 Medium accepted in part: spec/plan rewrite (`a18aba19`) + filed follow-on `chore_dashboard_regen_priority4_dependency_cite_false_positive` |
| Gemini Code Assist | [x] | 1 High accepted: double-backtick fix (`5b595bc9`) |
| **PR A** | [x] | [#253](https://github.com/SoundMindsAI/relyloop/pull/253) merged 2026-05-25T21:53:09Z as squash `20bcb36d` |
| 2.1 — git mv + state.md update | [x] | this finalization commit |
| **PR B** | [ ] | in flight |

## 8) Open questions

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

## Idea
- Status: Complete
- File: idea.md
- /idea-preflight verdict (2026-05-25): Ready after 3-edit patch (line 572→581 drift, PR-TBD→PR #221 for sibling chore, "Why deferred" status clarification)

## Spec
- Status: Approved
- Date: 2026-05-25
- File: feature_spec.md
- Cross-model review: GPT-5.5 converged after 3 cycles
- Cycle 1: 1 Low finding (AC-7 missed single-line triple-backtick fences) — accepted, added AC-12
- Cycle 2: 2 Low findings (regex hint `+` would skip empty spans; 4 stale "6 tests" residuals) — both accepted, patched
- Cycle 3: 0 findings → stop rule satisfied
- Phases: 1 (single phase, two-PR rollout — see §3 Phase boundaries)
- FRs: 5 (FR-1 helper, FR-2 wire-in, FR-3 test class, FR-4 docstring, FR-5 post-merge finalization)
- ACs: 7 (AC-6 through AC-12)

## Plan
- Status: Approved
- Date: 2026-05-25
- File: implementation_plan.md
- Cross-model review: GPT-5.5 cycle 1 produced 2 findings (1 Low, 1 Medium); both accepted and patched (gate arithmetic 6→7; regex `\`{3,}` for spec-compliance with "3-or-more" fence delimiter). Cycle 2 = 0 findings → stop rule satisfied.
- Stories: 5 total across 2 epics (Epic 1 = Stories 1.1–1.4 in PR A; Epic 2 = Story 2.1 in PR B)
- Phases covered: single phase (two-PR rollout per spec §3)

## Implementation
- Status: Complete
- Date: 2026-05-25
- PR A (content): [#253](https://github.com/SoundMindsAI/relyloop/pull/253) — merged 2026-05-25T21:53:09Z as squash `20bcb36d`
- Stories completed: 4 (1.1 helper, 1.2 wire-in, 1.3 test class, 1.4 docstring) + Epic 1 phase-gate fix
- Tests: 8 in TestBacktickStripPriority3 (AC-6..AC-13); 36 total in test_dashboard_pr_extraction.py; 1434+ in full backend unit suite
- CI: 6/7 green; 1 pre-existing failure (`smoke (operator-path tutorial flow)` — captured in `bug_smoke_dashboard_demo_state_locator_missing`; same as PR #250)
- Cross-model reviews:
- spec-gen: 3 GPT-5.5 cycles converged
- impl-plan-gen: 2 GPT-5.5 cycles converged
- Epic 1 phase-gate: 1 Medium finding (naive `{3,}` regex would miss 4-backtick outer with inner 3-backtick) → accepted, backref `(`{3,}).*?\1` + new AC-13 test
- Final review: 1 Medium finding (self-triggering spec/plan examples + remaining priority-4 false positive) → accepted in part (spec/plan rewritten); priority-4 deferred as follow-on chore [`chore_dashboard_regen_priority4_dependency_cite_false_positive`](../chore_dashboard_regen_priority4_dependency_cite_false_positive/idea.md)
- Gemini Code Assist: 1 High finding (double-backtick inline spans missed by Pass-B regex) → accepted, fix shipped in `5b595bc9` using Gemini's suggested backref `(`{1,2})[^\n]*?\1`
Comment on lines +24 to +40

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 a minor markdown formatting issue on lines 24, 38, and 40. Escaping backticks with backslashes inside single backticks (e.g., \{3,}`) is not standard markdown and can lead to rendering issues or display literal backslashes.

To cleanly display literal backticks inside inline code blocks, you can wrap the entire inline code block in double backticks ( ``).

Here is how they can be formatted:

  • Line 24: regex `` {3,} `` `
  • Line 38: backref `` ({3,}).*?\1 `` `
  • Line 40: backref `` ({1,2})[^\n]*?\1 `` `

- PR B (finalization): in flight — this branch (`docs/finalize-chore-dashboard-regen-quoted-pr-false-positive`)

## Done
- Status: Pending (PR B merge)
- Folder moved to `docs/00_overview/implemented_features/2026_05_25_chore_dashboard_regen_quoted_pr_false_positive/` via FR-5 in this PR B.
49 changes: 25 additions & 24 deletions docs/00_overview/mvp1_dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -397,13 +397,13 @@ <h2>MVP1 Progress</h2>
<div class="kpi-row">
<div class="kpi ">
<div class="label">Scoped items done</div>
<div class="value">79 / 81</div>
<div class="sub">98% of feat_/infra_/chore_/epic_ items past idea stage</div>
<div class="bar"><span style="width:98%"></span></div>
<div class="value">80 / 81</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>
<div class="kpi warn">
<div class="label">Pending work</div>
<div class="value">18</div>
<div class="value">17</div>
<div class="sub">every not-done feat/infra/chore/bug across all priorities</div>
</div>
<div class="kpi bug">
Expand All @@ -425,7 +425,7 @@ <h2>MVP1 Progress</h2>
</div>
<div class="kpi">
<div class="label">P2 (default)</div>
<div class="value">17</div>
<div class="value">16</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">17</div>
<div class="value">16</div>
<div class="sub">scoped not-done + bugs + chore-ideas only (excludes feat/infra ideas)</div>
</div>
</div>
Expand Down Expand Up @@ -680,19 +680,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_dashboard_regen_quoted_pr_false_positive/feature_spec.md">Dashboard Regen Quoted Pr False Positive</a></div>
<div class="meta">
<span class="badge chore">Chore</span>
<span class="badge priority" data-priority="P2">P2</span>
<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/221">PR #221</a> <span>merged 2026-05-25</span>
</div>
<div class="one-liner">Priority-3 fuzzy match no longer matches PR-merge phrases that live inside backtick-fenced segments.</div>


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

</div>

Expand All @@ -714,7 +702,7 @@ <h3>Implementing <span class="count">1</span></h3>
</div>

<div class="col done">
<h3>Done <span class="count">98</span></h3>
<h3>Done <span class="count">99</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 @@ -1379,6 +1367,19 @@ <h3>Done <span class="count">98</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_25_chore_dashboard_regen_quoted_pr_false_positive/feature_spec.md">Dashboard Regen Quoted Pr False Positive</a></div>
<div class="meta">
<span class="badge chore">Chore</span>

<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/253">PR #253</a> <span>merged 2026-05-25</span>
</div>
<div class="one-liner">Priority-3 fuzzy match no longer matches PR-merge phrases that live inside backtick-fenced segments.</div>


</div>


<div class="card chore" data-prefix="chore" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_19_chore_data_table_columnvisibility_tanstack">Data Table Columnvisibility Tanstack</a></div>
<div class="meta">
Expand Down Expand Up @@ -2002,8 +2003,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_dashboard_regen_quoted_pr_false_positive[&quot;dashboard regen quoted pr false positive&quot;]
class chore_dashboard_regen_quoted_pr_false_positive plan;
infra_agent_sibling_worktree_isolation[&quot;agent sibling worktree isolation&quot;]
class infra_agent_sibling_worktree_isolation implement;
infra_foundation[&quot;foundation&quot;]
Expand Down Expand Up @@ -2156,6 +2155,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_digest_executable_followups_swap_template done;
feat_home_demo_reseed_endpoint[&quot;home demo reseed endpoint&quot;]
class feat_home_demo_reseed_endpoint done;
chore_dashboard_regen_quoted_pr_false_positive[&quot;dashboard regen quoted pr false positive&quot;]
class chore_dashboard_regen_quoted_pr_false_positive done;
chore_e2e_seed_acme_idea_obsolete[&quot;e2e seed acme idea obsolete&quot;]
class chore_e2e_seed_acme_idea_obsolete done;
feat_study_baseline_trial[&quot;study baseline trial&quot;]
Expand Down Expand Up @@ -2217,8 +2218,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_dashboard_regen_quoted_pr_false_positive[&quot;dashboard regen quoted pr false positive&quot;]
class chore_dashboard_regen_quoted_pr_false_positive plan;
infra_agent_sibling_worktree_isolation[&quot;agent sibling worktree isolation&quot;]
class infra_agent_sibling_worktree_isolation implement;
infra_foundation[&quot;foundation&quot;]
Expand Down Expand Up @@ -2371,6 +2370,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_digest_executable_followups_swap_template done;
feat_home_demo_reseed_endpoint[&quot;home demo reseed endpoint&quot;]
class feat_home_demo_reseed_endpoint done;
chore_dashboard_regen_quoted_pr_false_positive[&quot;dashboard regen quoted pr false positive&quot;]
class chore_dashboard_regen_quoted_pr_false_positive done;
chore_e2e_seed_acme_idea_obsolete[&quot;e2e seed acme idea obsolete&quot;]
class chore_e2e_seed_acme_idea_obsolete done;
feat_study_baseline_trial[&quot;study baseline trial&quot;]
Expand Down

This file was deleted.

2 changes: 1 addition & 1 deletion state.md

Large diffs are not rendered by default.