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 @@ -7,7 +7,7 @@ _Top-level index across MVP1 → GA v1+ as of **2026-06-03**. Click a release na
| Release | Theme | Progress | Status |
|---|---|---|---|
| [MVP1 / v0.1](MVP1_DASHBOARD.md) | The Loop | 94 / 94 scoped done | **Complete** |
| [MVP2 / v0.2](MVP2_DASHBOARD.md) | Three-Engine + Real Signals | 13 / 24 scoped done · 25 remaining | **In progress** |
| [MVP2 / v0.2](MVP2_DASHBOARD.md) | Three-Engine + Real Signals | 14 / 24 scoped done · 24 remaining | **In progress** |
| MVP3 / v0.3 | Observable | — | **Not yet scoped** |
| GA v1 / v1.0 | Production-ready | — | **Not yet scoped** |

Expand Down
69 changes: 34 additions & 35 deletions docs/00_overview/MVP2_DASHBOARD.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/00_overview/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ <h2>Releases</h2>
<div class="roadmap-row">
<div class="release-name"><a href="mvp2_dashboard.html">MVP2 / v0.2</a></div>
<div class="theme">Three-Engine + Real Signals</div>
<div class="progress">13 / 24 scoped done · 25 remaining</div>
<div class="progress">14 / 24 scoped done · 24 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 — CI gate for generated-artifact freshness (`types.ts` + `ui/public/docs`)

**Date:** 2026-06-01
**Status:** Draft
**Status:** Complete (PR #433, merged 2026-06-03 — squash `c5c36c65`)
**Primary spec:** [`feature_spec.md`](feature_spec.md)
**Policy source(s):** CLAUDE.md (Absolute Rules #2 secrets-via-files, #7 conventional commits + DCO; "Common Pitfalls" hermetic-CI + local-stub hygiene); `scripts/gen_license_inventory.py --check` + the `license-inventory` job in [`.github/workflows/pr.yml`](../../../../../.github/workflows/pr.yml); [`.github/workflows/secrets-defense.yml`](../../../../../.github/workflows/secrets-defense.yml) (own-workflow-to-escape-`paths-ignore` precedent)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Pipeline Status — CI gate for generated-artifact freshness

**Release:** mvp2

## Idea
- Status: Complete
- File: idea.md
Expand All @@ -20,4 +22,11 @@
- Phases covered: Phase 1 + Phase 2 (both)

## Implementation
- Status: Not started
- Status: Complete
- Date: 2026-06-03
- PR: #433 (squash-merged `c5c36c65`)
- CI: all 17 checks green (smoke skipped — operator-controlled, OFF by default)
- Stories completed: 6 / 6 (Epic 1: 1.1, 1.2; Epic 2: 2.1, 2.2, 2.3, 2.4) — both phases shipped together
- Tests: 48 new cases (10 backend unit + 17 vitest + 21 shell-guard self-test)
- Cross-model review: Epic 1 GPT-5.5 phase gate (1 accepted, 2 rejected w/ counter-evidence); Epic 2 GPT-5.5 phase gate (5 rejected); Gemini Code Assist (3 accepted — atexit cleanup, atomic-write try/finally, Windows shell flag); final GPT-5.5 review clean (0 findings)
- Note: the standalone Phase-2 record `infra_openapi_types_freshness_gate/` was retired at finalization since both phases shipped in this PR.
67 changes: 27 additions & 40 deletions docs/00_overview/mvp2_dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -397,13 +397,13 @@ <h2>MVP2 Progress</h2>
<div class="kpi-row">
<div class="kpi ">
<div class="label">Specced features done</div>
<div class="value">13 / 24</div>
<div class="sub">54% specced · 44 filed under MVP2</div>
<div class="bar"><span style="width:54%"></span></div>
<div class="value">14 / 24</div>
<div class="sub">58% specced · 43 filed under MVP2</div>
<div class="bar"><span style="width:58%"></span></div>
</div>
<div class="kpi warn">
<div class="label">Pending work</div>
<div class="value">29</div>
<div class="value">27</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>MVP2 Progress</h2>
</div>
<div class="kpi">
<div class="label">P2 (default)</div>
<div class="value">25</div>
<div class="value">23</div>
<div class="sub">important to file, not blocking</div>
</div>
<div class="kpi">
Expand All @@ -435,14 +435,14 @@ <h2>MVP2 Progress</h2>
</div>
<div class="kpi">
<div class="label">Legacy "Path to MVP2"</div>
<div class="value">25</div>
<div class="value">24</div>
<div class="sub">scoped not-done + bugs + chore-ideas only (excludes feat/infra ideas)</div>
</div>
</div>
<div class="kpi-secondary">
<span>
<strong>Backlog ideas:</strong>
4 idea-only feat/infra folders (not yet scoped into MVP2)
3 idea-only feat/infra folders (not yet scoped into MVP2)
</span>
<span>
<strong>In flight:</strong>
Expand All @@ -463,20 +463,7 @@ <h2>Pipeline</h2>
</div>
<div class="kanban">
<div class="col idea">
<h3>Idea <span class="count">16</span></h3>

<div class="card infra" data-prefix="infra" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/planned_features/02_mvp2/infra_openapi_types_freshness_gate">Openapi Types Freshness Gate</a></div>
<div class="meta">
<span class="badge infra">Infra</span>
<span class="badge priority" data-priority="P2">P2</span>

</div>
<div class="one-liner">Idea — Phase 2 of [`infra_generated_artifact_freshness_gate`](../infra_generated_artifact_freshness_gate/feature_spec.md), extracted to its own folder</div>


</div>

<h3>Idea <span class="count">15</span></h3>

<div class="card infra" data-prefix="infra" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/planned_features/02_mvp2/infra_smoke_fork_pr_secret_skip">Smoke Fork Pr Secret Skip</a></div>
Expand Down Expand Up @@ -680,7 +667,7 @@ <h3>Spec <span class="count">0</span></h3>
</div>

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

<div class="card feat" data-prefix="feat" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/planned_features/02_mvp2/feat_apply_path_normalizer_declaration/feature_spec.md">Apply Path Normalizer Declaration</a></div>
Expand Down Expand Up @@ -747,19 +734,6 @@ <h3>Plan <span class="count">13</span></h3>
</div>


<div class="card infra" data-prefix="infra" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/planned_features/02_mvp2/infra_generated_artifact_freshness_gate/feature_spec.md">Generated Artifact Freshness Gate</a></div>
<div class="meta">
<span class="badge infra">Infra</span>
<span class="badge priority" data-priority="P2">P2</span>

</div>
<div class="one-liner">CI fails a PR whose committed `types.ts` does not match what the live OpenAPI schema would produce, and whose `ui/public/docs/*` copies do not match their `docs/08_guides/*` sources.</div>


</div>


<div class="card chore" data-prefix="chore" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/planned_features/02_mvp2/chore_arq_pool_aclose_deprecation/feature_spec.md">Arq Pool Aclose Deprecation</a></div>
<div class="meta">
Expand Down Expand Up @@ -858,7 +832,7 @@ <h3>Implementing <span class="count">0</span></h3>
</div>

<div class="col done">
<h3>Done <span class="count">15</span></h3>
<h3>Done <span class="count">16</span></h3>

<div class="card feat" data-prefix="feat" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_05_15_feat_contextual_help_mvp2">Contextual Help</a></div>
Expand Down Expand Up @@ -964,6 +938,19 @@ <h3>Done <span class="count">15</span></h3>
</div>


<div class="card infra" data-prefix="infra" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_06_03_infra_generated_artifact_freshness_gate/feature_spec.md">Generated Artifact Freshness Gate</a></div>
<div class="meta">
<span class="badge infra">Infra</span>

<a class="pr" href="https://github.com/SoundMindsAI/relyloop/pull/433">PR #433</a> <span>merged 2026-06-03</span>
</div>
<div class="one-liner">CI fails a PR whose committed `types.ts` does not match what the live OpenAPI schema would produce, and whose `ui/public/docs/*` copies do not match their `docs/08_guides/*` sources.</div>


</div>


<div class="card infra" data-prefix="infra" data-priority="P2">
<div class="name"><a href="../../docs/00_overview/implemented_features/2026_06_02_infra_smoke_reseed_runtime_budget/feature_spec.md">Smoke Reseed Runtime Budget</a></div>
<div class="meta">
Expand Down Expand Up @@ -1087,8 +1074,6 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_query_normalizer_typed_pipeline plan;
feat_ubi_llm_study_comparison[&quot;ubi llm study comparison&quot;]
class feat_ubi_llm_study_comparison plan;
infra_generated_artifact_freshness_gate[&quot;generated artifact freshness gate&quot;]
class infra_generated_artifact_freshness_gate plan;
feat_contextual_help_mvp2[&quot;contextual help mvp2&quot;]
class feat_contextual_help_mvp2 done;
feat_study_sub_warmup_guard[&quot;study sub warmup guard&quot;]
Expand All @@ -1115,6 +1100,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class infra_smoke_reseed_runtime_budget done;
infra_solr_smoke_stability[&quot;solr smoke stability&quot;]
class infra_solr_smoke_stability done;
infra_generated_artifact_freshness_gate[&quot;generated artifact freshness gate&quot;]
class infra_generated_artifact_freshness_gate done;
feat_ubi_judgments --&gt; infra_adapter_solr</div>
<noscript><pre>graph LR
classDef done fill:#dcfce7,stroke:#14532d,color:#14532d;
Expand Down Expand Up @@ -1142,8 +1129,6 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class feat_query_normalizer_typed_pipeline plan;
feat_ubi_llm_study_comparison[&quot;ubi llm study comparison&quot;]
class feat_ubi_llm_study_comparison plan;
infra_generated_artifact_freshness_gate[&quot;generated artifact freshness gate&quot;]
class infra_generated_artifact_freshness_gate plan;
feat_contextual_help_mvp2[&quot;contextual help mvp2&quot;]
class feat_contextual_help_mvp2 done;
feat_study_sub_warmup_guard[&quot;study sub warmup guard&quot;]
Expand All @@ -1170,6 +1155,8 @@ <h2>Dependency graph (feat_ + infra_)</h2>
class infra_smoke_reseed_runtime_budget done;
infra_solr_smoke_stability[&quot;solr smoke stability&quot;]
class infra_solr_smoke_stability done;
infra_generated_artifact_freshness_gate[&quot;generated artifact freshness gate&quot;]
class infra_generated_artifact_freshness_gate done;
feat_ubi_judgments --&gt; infra_adapter_solr</pre></noscript>
</div>
</section>
Expand Down

This file was deleted.

8 changes: 4 additions & 4 deletions website/docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,18 +182,17 @@
- 🟡 [Query Normalizer Typed Pipeline](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/feat_query_normalizer_typed_pipeline)
- 🟡 [UBI LLM Study Comparison](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/feat_ubi_llm_study_comparison)

??? note "Infrastructure & tooling (8)"
??? note "Infrastructure & tooling (7)"

- ✅ [Adapter Solr](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_05_31_infra_adapter_solr) · [#336](https://github.com/SoundMindsAI/relyloop/pull/336)
- ✅ [Generated Artifact Freshness Gate](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_03_infra_generated_artifact_freshness_gate) · [#433](https://github.com/SoundMindsAI/relyloop/pull/433)
- ✅ [Smoke Reseed Runtime Budget](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_02_infra_smoke_reseed_runtime_budget) · [#424](https://github.com/SoundMindsAI/relyloop/pull/424)
- ✅ [Solr CI Readiness](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_01_infra_solr_ci_readiness) · [#367](https://github.com/SoundMindsAI/relyloop/pull/367)
- ✅ [Solr Smoke Stability](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_02_infra_solr_smoke_stability) · [#383](https://github.com/SoundMindsAI/relyloop/pull/383)
- 🟡 [Arq Subprocess Test](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/infra_arq_subprocess_test)
- 🟡 [Generated Artifact Freshness Gate](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/infra_generated_artifact_freshness_gate)
- 🟡 [Openapi Types Freshness Gate](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/infra_openapi_types_freshness_gate)
- 🟡 [Smoke Fork PR Secret Skip](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/infra_smoke_fork_pr_secret_skip)

??? note "Maintenance & fixes (22)"
??? note "Maintenance & fixes (23)"

- ✅ [Backend Suite Nondeterministic Caplog Isolation](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_01_bug_backend_suite_nondeterministic_caplog_isolation) · [#364](https://github.com/SoundMindsAI/relyloop/pull/364)
- ✅ [Contract Allowlists Outdated After Mvp2 Features](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/implemented_features/2026_06_01_bug_contract_allowlists_outdated_after_mvp2_features) · [#364](https://github.com/SoundMindsAI/relyloop/pull/364)
Expand All @@ -208,6 +207,7 @@
- 🟡 [Demo Seeding Integration Tests Rewrite](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/chore_demo_seeding_integration_tests_rewrite)
- 🟡 [E2E Teardown Chain Node Delete 500](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/bug_e2e_teardown_chain_node_delete_500)
- 🟡 [Judgment Header Omits Click Bucket](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/bug_judgment_header_omits_click_bucket)
- 🟡 [PR Yml Parallelize Backend Job](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/chore_pr_yml_parallelize_backend_job)
- 🟡 [Relyloop Spec UBI Section Drift](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/bug_relyloop_spec_ubi_section_drift)
- 🟡 [Reseed Failure Blocks Retry Arq Singleton Dedup](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/bug_reseed_failure_blocks_retry_arq_singleton_dedup)
- 🟡 [Seed Meaningful Demos Silent Bulk Errors](https://github.com/SoundMindsAI/relyloop/tree/main/docs/00_overview/planned_features/02_mvp2/bug_seed_meaningful_demos_silent_bulk_errors)
Expand Down