{"quest":{"id":"8db4834c-51e","name":"Artifacts","description":"Rich artifacts & computational notebooks. Artifact lifecycle governance: git-like versioning (version_number, parent_version_id, changelog), lifecycle states (active/deprecated/cold/superseded), supersession chains with forward reference resolution, dependency tracking, never-delete policy. Deduplication agent scans for duplicates and produces merge recommendations for governance review.","layer":"Cross-cutting","priority":68,"status":"active","created_at":"2026-04-02T10:00:57.209491+00:00","updated_at":"2026-04-10T14:44:10.355870+00:00"},"tasks":[{"id":"4873cc51-d403-4726-b101-5143c6ddd918","title":"[Artifacts] Ensure all 18 spotlight notebooks have rich, executed content","description":"Query notebooks WHERE is_spotlight=1. Each must have: >50KB rendered HTML, real code cells with outputs, matplotlib/seaborn figures, proper title and description. Fix any that are stubs or have broken rendering.","status":"open","priority":96,"frequency":"every-12h","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-27T23:52:51.012200+00:00","updated_at":"2026-04-28T18:29:10.263733+00:00","summary":"","completion_summary":"worker on slot 40 exited cleanly with no commits (no work this cycle); requeued","completion_notes":"","last_error":"cli-get-next: phantom running task — linked run b4b188ff-0fd already terminal (abandoned); requeued immediately","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/visual_artifacts_quest_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 6, \"reasoning\": 6, \"safety\": 9}, \"completion_shas\": [\"e812fe856d613f10bcd44234f9c2ed969c191f7e\", \"b3db0b5dbd834f92a2e05136b2c0ea6d527a074b\", \"e11689c32a32c7f89fab382e16dc3b6a5d1fdec3\"], \"completion_shas_checked_at\": \"2026-04-13T05:49:01.132316+00:00\", \"completion_shas_missing\": [\"975aaae7cf5d62da89ed68bedfc3c8bbfddd2bd2\", \"2628f9ef4a8521ebaae5c29493cd824329d4f4b3\", \"ae04acfa964bc406ab893ce192d0f6bf193a4f13\"]}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"recurring","pr_links":[],"commit_links":[]},{"id":"0186b1eb-d645-412d-873b-f30541d5f159","title":"[Artifacts] Audit all 67 stub notebooks (<10KB) and regenerate with real content","description":"Query notebooks table for entries where rendered HTML is <10KB. For each: check if the associated analysis has debate transcripts/hypotheses. If yes, regenerate the notebook using the create_notebooks.py or generate_nb pattern (see scripts/generate_nb_sea_ad_001.py as template). If no analysis data exists, mark the notebook as draft or archive it. Target: zero <10KB stubs.","status":"open","priority":82,"frequency":"every-6h","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-27T06:53:58.869084+00:00","updated_at":"2026-04-28T06:31:29.696234+00:00","summary":"","completion_summary":"The audit script ran successfully and found **0 stub notebooks under 10KB** in the current database state. The script correctly queries the `notebooks` table, checks `rendered_html_path` file sizes via the `html_size()` function, and classifies each stub for regeneration or archival.","completion_notes":"Auto-release: recurring task had no work this cycle","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/showcase_notebook_rebuild_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 6, \"reasoning\": 6, \"safety\": 6}, \"completion_shas\": [\"423f7b9a7f0b1da4a2ef83203a56fc29ff804539\", \"bea421f35b2b0a3d2ecb0092735473a03fa119a0\", \"7ce82743d9106fe1956315f13e3b3c278baf2d56\", \"0142faa373d2268ba9a5c02b542bb80588004fec\"], \"completion_shas_checked_at\": \"2026-04-13T05:35:04.906665+00:00\", \"completion_shas_missing\": [\"fc93b936824eecaccb34f0778f4165734c1a692b\", \"d91c87b69e2dc239e04d9cc906c1fb4ed240635d\", \"3b0c15fb438a787d93307cba8e2dd5f9f076f99b\"], \"_stall_skip_providers\": [\"glm\"], \"_watchdog_repair_task_id\": \"879e7143-b974-4d48-954e-f1cfd5240c32\", \"_watchdog_repair_created_at\": \"2026-04-23T01:34:31.428825+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"The audit script ran successfully and found **0 stub notebooks under 10KB** in the current database state. The script correctly queries the `notebooks` table, checks `rendered_html_path` file sizes via the `html_size()` function, and classifies each stub for regeneration or archival.","task_type":"recurring","pr_links":[],"commit_links":[]},{"id":"73ee83a5-c702-45de-8f3d-b41171c061a9","title":"[Artifacts] CI: Verify notebook coverage and generate summaries for recent analyses","description":"Recurring CI: scan for completed analyses without notebooks, generate notebook stubs for the top 3 missing, verify artifact pages load correctly, report coverage percentage.","status":"open","priority":78,"frequency":"every-12h","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-27T06:55:48.450048+00:00","updated_at":"2026-04-28T03:59:14.779684+00:00","summary":"","completion_summary":"Recurring notebook coverage CI completed. Key findings:","completion_notes":"Auto-release: recurring task had no work this cycle","last_error":"","time_estimate_hours":0.0,"completion_count":1,"spec_path":"docs/planning/specs/73ee83a5_c70_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 6, \"reasoning\": 6, \"safety\": 6}, \"_stall_skip_providers\": [\"glm\"], \"_stall_requeued_by\": \"codex\", \"_stall_requeued_at\": \"2026-04-11 01:14:05\", \"completion_shas\": [\"33c273e72a089a74b1ee0197797af50bf23b9b0d\", \"ad9bf94a2ce832f8cf9ff532e1bb768a204cf7f4\", \"c49d36d582f324341cca8cc3962b44e280ed091d\", \"34cd13c63 (origin/main HEAD)\"], \"completion_shas_checked_at\": \"2026-04-12T23:52:54.817452+00:00\", \"completion_shas_missing\": [\"582657caecc19b6ef14454f179660c13838ded3e\", \"dd5d1a8352639df2b1b2b796825603cbea7ed4c1\", \"15742b176648b8c20b685ff198eea20c72e4b662\", \"9e28ff2900f928a7f4b79161c283690209ddbab1\", \"fc16c2c5502564182d81f41b95c888393c5b9d38\", \"fa68b788621fd797735429b75788eace82188817\", \"f2e61f69b4a32c8e451a7bb5662c53aa51e5c214\", \"bcbdb6b03c66b146c2b7a4252bf3917909783329\", \"eb45d1beecc6b2c6203e118d696414b4f04ee59b\", \"e8c872a67c65141019f330204d64399060edc62a\", \"57b6ed1fc7f414ee003ef67d32ff731959548acf\", \"fc7fbf64569e688d00b1bc4094bb01bd9fe2ec0d\", \"b949eafe79b9d2acb6444e4554bb11131e1b62a7\", \"daad56e4fdb9b3d01805d8943b89973a469ba7e9\", \"8e893dbe5c497e7c1e971d27eb19f57697b93f03\", \"7d1532d1796feec4a4507b8c30c6b8947e2b0030\", \"5c5255413c79977fd2deb4118939a8d188b02dc0\", \"37bcd6cef547ce03f2ef02ffd8fc566538e41700\", \"ea169f27b906c14400a1e49c12490c185e0b5141\", \"362921c2ff7379023e6c5767cb4307da64ef9db1\", \"9bcd004998c98494dcc1217f1c0b2abdf856ae87\", \"36ebb41506fdb48a1808cd6853c1219c71961a82\", \"9c56a7d8abf48f00a0f7229208573c7cd6f8e4fa\", \"391d16428c4354dd61a8a108349ccb985af769a7\", \"463143363bf7d22b73fd99d493e8935c9ce0c2a0\"], \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Recurring notebook coverage CI completed. Key findings:","task_type":"recurring","pr_links":[],"commit_links":[]},{"id":"967e8646-8d4d-4102-907f-9575922abdd2","title":"[Artifacts] Review notebook links from analysis pages — fix any that lead to stubs","description":"Visit the top 20 analyses at /analyses/. Click each notebook link. Verify the notebook page shows real content (code cells, outputs, figures) not a stub or \"Not Rendered Yet\" message. For stubs: regenerate from analysis data. For missing: create the notebook.","status":"open","priority":60,"frequency":"every-6h","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-27T07:34:11.965999+00:00","updated_at":"2026-04-27T07:34:11.965999+00:00","summary":"","completion_summary":"[Atlas] Fix stub notebooks: artifacts path fallback + DB registration","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/967e8646_8d4d_artifacts_review_notebook_links_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 6, \"reasoning\": 6, \"safety\": 9}, \"completion_shas\": [\"1f09a4461075fcc7ee1d482a24e6ce6941755317\", \"4bde3cc30a850a997224ceb6a44e0e1aa54276a2\", \"281e68478265280a6150cf58e66cc737e12d8576\", \"51beaac2c7099ce87d015c16d5608b2f8d54e5b0\", \"301dc7d80d5bc97bb13a11f6ed337d065866f8c8\", \"75e45b23e817673ebfc3558ef2aa4ba3a8d4cc6f\", \"9c92d5fe657b5010e976496ebdff2ed270ab3f3b\", \"c67f106a3641d534cc9bdcdaa3b032ce071d11a2\"], \"completion_shas_checked_at\": \"2026-04-13T05:56:20.452449+00:00\", \"completion_shas_missing\": [\"5e74199190afcd99c6ecd47e38b9b3a29c6a11ee\", \"f3aa31837f1f4d6533f9faed51f365b8e15e8300\", \"094853ec54fcaae83aaadc6924c131042c018462\", \"00569539cbeab3789863e5a19f51e21ae4642367\", \"a9af5a683bc2c9705bf3864fb04db1c75308a809\", \"c1e874dbf8c27624a7f25d99e33c235e1baa27b8\", \"8172eb0256a5ebfb1f457d31a3ac9e0e30952d81\", \"34954b59f4811985fba4e64bc6783b90c1c0e045\", \"a6d4e0d4459cb483a72397f4b465b20ed8e6627e\", \"bdbbb26e46335cce9d25c1d153f7d2b92a289a76\", \"2e0fdba86844e0149c37ecf9871d24362950f4ce\"]}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"recurring","pr_links":[],"commit_links":[]},{"id":"05a277d6-f4cc-4439-ae7a-71806332e313","title":"[Artifacts] Add Mol* 3D protein viewer to hypothesis pages","description":"Embed interactive 3D protein structure viewers using Mol* (molstar.org) on hypothesis pages. Load PDB structures for target proteins mentioned in hypotheses. Add viewer to hypothesis detail page template. Support PDB ID input and automatic structure loading. See docs/planning/specs/d16_4_molstar_protein_viewer_spec.md\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":96,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-23T09:16:27.115302+00:00","updated_at":"2026-04-23T09:16:27.115302+00:00","summary":"","completion_summary":"Already done on main: Mol* 3D protein viewer fully implemented in api.py with PDBe Molstar plugin, PDB ID mapping, AlphaFold fallback. Confirmed via grep (122+ molstar references). Commits: afebddfec, 7fb8ef909, db23ef9cf, 91ec0016e. Root cause of repeated abandons: agents exited code 0 without calling complete.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d16_4_molstar_protein_viewer_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_stall_skip_providers\": [\"minimax\"], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 12:34:05\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\", \"_watchdog_repair_task_id\": \"ebb63f5c-d508-4ab1-97b5-14f543b79807\", \"_watchdog_repair_created_at\": \"2026-04-23T06:56:54.562358+00:00\", \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"grep -n molstar api.py returns 122+ matches including hypothesis_detail, entity_detail, and challenge_detail viewers. /showcase has no Mol* viewer. All acceptance criteria satisfied.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c684ec5f-d8af-4d47-97b3-4a0aca40a76b","title":"[Artifacts] Add Mol* 3D protein viewer to hypothesis pages","description":"Embed interactive Mol* protein structure viewers on hypothesis pages for target proteins (TREM2, APOE, LRP1, etc.). Detect proteins in descriptions, load PDB structures, provide interactive rotation/zoom.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":96,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-23T09:14:58.573322+00:00","summary":"","completion_summary":"Already done on main: Mol* 3D protein viewer is fully implemented in api.py (126 molstar references, commits afebddfec+7fb8ef909+db23ef9cf+91ec0016e). Task kept failing because workers found it already done but exited without calling orchestra complete.","completion_notes":"","last_error":"Paused after 13 exit-0 runs with no commits on branch=(none); stale worktree deleted","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d16_4_molstar_protein_viewer_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_stall_skip_providers\": [\"minimax\"], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 12:43:43\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\", \"_watchdog_repair_task_id\": \"b857b2e2-361e-48dd-8c91-53b5948ed29e\", \"_watchdog_repair_created_at\": \"2026-04-23T06:56:50.244161+00:00\", \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-01-9150F369","title":"[Artifacts] Embed Mol* protein viewer component","description":"Create reusable Mol* (molstar.org) viewer component. CDN: https://molstar.org/mol-star/molstar.js. Load PDB structures by ID. Show in iframe or div. Add to hypothesis detail pages where target_gene has a known PDB structure. Map gene names to PDB IDs for top 20 targets.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-24T13:53:26.648622+00:00","updated_at":"2026-04-24T13:53:26.648622+00:00","summary":"","completion_summary":"[Verify] Mol* viewer task already resolved [task:a17-01-9150F369]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved on main as 33075c82a12b08f028c97cc35aa0a0ad705711f4: Mol* viewer remains implemented on hypothesis/entity/challenge detail pages with 151 PDB mappings, 190 UniProt fallbacks, and showcase de-emphasized.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-18-VERS0001","title":"[Artifacts] Add version tracking schema to artifacts table","description":"Add versioning columns to the artifacts table: version_number INTEGER DEFAULT 1, parent_version_id TEXT (self-referencing FK), version_tag TEXT (e.g. v1.0, draft), changelog TEXT, is_latest BOOLEAN DEFAULT TRUE. Create index on (artifact_type, entity_ids, is_latest). Add migration in Orchestra/migrations/. This is the foundation for all reproducible analysis chains.","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-24T13:43:58.433603+00:00","updated_at":"2026-04-24T13:43:58.433603+00:00","summary":"","completion_summary":"[Atlas] Resolve merge conflict — merge codex fix with latest verification [task:a17-18-VERS0001]; [Atlas] Update versioning schema spec with live verification [task:a17-18-VERS0001]; [Artifacts] Clean branch drift for versioning index [task:a17-18-VERS0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-18-VERS0001_version_tracking_schema_spec.md","provider":"claude","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"12d70cee-d20c-4d91-b250-eafba8eae3e7","title":"[Artifacts] Demo notebook registry filters and showcase highlighting","description":"Add demo-focused filtering/sorting on /notebooks so Allen/SEA-AD/aging showcase artifacts are easier to discover; include metadata chips and a spotlight section for top demo notebooks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-15T22:59:38.590452+00:00","updated_at":"2026-04-15T22:59:38.590452+00:00","summary":"","completion_summary":"Implementation already on main via commit 6d28b399e — demo notebook registry filters and showcase highlighting with tag filtering, sort options, metadata chips, and spotlight section","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/12d70cee_d20_spec.md","provider":"any","payload_json":"{\"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 00:34:41\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"34b59c35-bc0c-4ea5-99e7-f33ad51cf10e","title":"[Artifacts] Add Mol* 3D protein viewer to hypothesis detail pages","description":"Embed Mol* (molstar) 3D protein structure viewer on hypothesis detail pages. For hypotheses with a target_gene, look up the corresponding PDB structure and embed an interactive 3D viewer. This is A17.1 from Quest 17.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-15T20:02:07.114968+00:00","updated_at":"2026-04-15T20:02:07.114968+00:00","summary":"","completion_summary":"Verified Mol* 3D protein viewer already implemented on main via commits 293a64391, afebddfec, 7fb8ef909, db23ef9cf. Implementation includes: (1) PDB structure viewer on hypothesis detail pages with collapsible panel and lazy-loading (line 29439-29528 in api.py), (2) AlphaFold predicted structure fallback for genes without PDB entries, (3) 75+ gene-to-PDB mappings for neurodegeneration targets, (4) protein design pages viewer (line 21178), (5) entity pages viewer (line 44886). Integration verified at line 30336 in hypothesis detail template.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/34b59c35_bc0_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-13 23:31:20\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"738203e4-01b0-400f-bfbb-d3cb9fdb3e1b","title":"[Artifacts] Add version tracking schema to artifacts table","description":"Add versioning columns (version_number, parent_version_id, version_tag, changelog, is_latest) to the artifacts table. Foundation for all reproducible analysis chains and artifact lineage tracking.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-14T00:43:53.625563+00:00","updated_at":"2026-04-14T00:43:53.625563+00:00","summary":"","completion_summary":"[Atlas] Complete artifact versioning: register_artifact() now accepts version params; [Docs] Update VER0001 spec work log: task already on main [task:738203e4-01b0-400f-bfbb-d3cb9fdb3e1b]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-18-VERS0001_version_tracking_schema_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"b9a46968c35d93f349e684e36b3eec490580c0b8\", \"856422caf086c0ee29416c1922ff68e62f547f6c\"], \"completion_shas_checked_at\": \"2026-04-14T00:43:53.605384+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ffb99f3d-6ab5-4efe-be3c-9d33714b5da1","title":"[Artifacts] Implement resolve_embeds() engine — replace {{artifact:ID}} markers with rendered HTML previews","description":"\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-14T00:41:31.588945+00:00","updated_at":"2026-04-14T00:41:31.588945+00:00","summary":"","completion_summary":"[Artifacts] Implement resolve_embeds() engine for {{artifact:ID}} markers [task:ffb99f3d-6ab5-4efe-be3c-9d33714b5da1]; [Atlas] Verify Flask routing system complete — all 16 routes HTTP 200 [task:4d328d41-9c41-46bf-82f5-1d1398381dc3]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-29-EMBD_artifact_embed_rendering_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 7}, \"completion_shas\": [\"84e32e5a5e412fdae6fc38d0f1981c0139be017f\", \"fe6e3e7f0934f33ee4b6be391888ce2bf67a8117\"], \"completion_shas_checked_at\": \"2026-04-14T00:41:31.569373+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f205405e-e160-4ce4-bcc1-aace4d3c10d1","title":"[Artifacts] A17.6: Evidence matrix component on hypothesis pages","description":"Add structured evidence matrix table to hypothesis detail pages showing citations with quality scores, relevance ratings, and evidence type. Mol* viewer already exists so pivoting to next highest-value Quest 17 artifact.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":95,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-13T23:08:45.823207+00:00","updated_at":"2026-04-13T23:08:45.823207+00:00","summary":"","completion_summary":"[Docs] Document f205405e task: evidence matrix already on main [task:f205405e-e160-4ce4-bcc1-aace4d3c10d1]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/f205405e_e16_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}, \"completion_shas\": [\"fb122fe7b8a517dd9825bb3898a7ced0842b9203\"], \"completion_shas_checked_at\": \"2026-04-13T23:08:45.803212+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b072f27c-d29a-4681-a40c-fc58a6b069e9","title":"[Artifacts] Extend artifact_type to include figure, code, model, protein_design, dataset","description":"Extend the artifact_type enum to support new artifact categories: figure, code_script, biophysical_model, protein_design, external_dataset. Required by Demo protein design and dataset registration tasks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":94,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T00:43:28.391730+00:00","updated_at":"2026-04-16T00:43:28.391730+00:00","summary":"","completion_summary":"Verification complete: figure artifact type is fully implemented across the codebase. All 6 acceptance criteria verified: figure in ARTIFACT_TYPES, figure schema defined, register_figure() callable, figure in valid_artifact_types sets in api.py, /artifacts?artifact_type=figure returns 200 OK, UI renders correctly.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-19-TYPE0001_extend_artifact_types_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"analysis\": 6}, \"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 02:36:55\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-19-TYPE0001","title":"[Artifacts] Extend artifact_type to include figure, code, model, protein_design, dataset","description":"Extend the artifact registry to accept new artifact_type values: figure, code, model, protein_design, dataset, tabular_dataset. Update artifact_registry.py register_artifact() validation. Add type-specific metadata schemas: figure (format, resolution, source_notebook), code (language, entrypoint, dependencies), model (architecture, framework, parameter_count, training_config), protein_design (pdb_id, sequence, method), dataset (source_url, format, row_count, schema). Can run in parallel with a17-18.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":94,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T00:13:29.776344+00:00","updated_at":"2026-04-16T00:13:29.776344+00:00","summary":"","completion_summary":"[Artifacts] Mark extend-artifact-type task done (status:done) [task:a17-19-TYPE0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-19-TYPE0001_extend_artifact_types_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 6}, \"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 01:52:59\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\", \"completion_shas\": [\"023b47dedb7228eeb00837bb0de3a3178d71f51f\"], \"completion_shas_checked_at\": \"2026-04-16T00:13:29.760465+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-20-VAPI0001","title":"[Artifacts] Version-aware artifact registry API: create_version, get_history, diff","description":"Add to artifact_registry.py: create_version(parent_artifact_id, **kwargs) creates new artifact row with incremented version_number, links to parent via parent_version_id, sets previous version is_latest=FALSE. get_version_history(artifact_id) returns all versions ordered by version_number. diff_versions(v1_id, v2_id) returns metadata/content diff. pin_version(artifact_id, version_tag) sets human-readable tag. Also add GET /api/artifact/{id}/versions and GET /api/artifact/{id}/versions/{version} endpoints to api.py. Depends on: a17-18-VERS0001.","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-25T01:47:18.989666+00:00","updated_at":"2026-04-25T01:47:18.989666+00:00","summary":"","completion_summary":"Added is_latest guard to create_version() in scidex/atlas/artifact_registry.py; added superseded-artifact regression tests; resolved merge conflict with remote branch. All 4 pytest tests pass. Branch pushed to origin as orchestra/task/a17-20-V-version-aware-artifact-registry-api-crea.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-20-VAPI0001_version_aware_api_spec.md","provider":"any","payload_json":"{\"requirements\": {\"safety\": 9}, \"completion_shas\": [\"68caa0d7e\"], \"completion_shas_checked_at\": \"\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-02-87C1C845","title":"[Artifacts] Jupyter notebook template for Allen Brain analysis","description":"Create template .ipynb notebook for Allen Brain data analysis. Include: AllenSDK setup, brain-map.org API queries, gene expression extraction, basic visualization (matplotlib/seaborn), differential expression with scipy, pathway enrichment with enrichr API. Save as template in notebooks/.","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-24T15:34:40.232974+00:00","updated_at":"2026-04-24T15:34:40.232974+00:00","summary":"","completion_summary":"[Verify] Allen Brain notebook template already on main [task:a17-02-87C1C845]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 7, \"analysis\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already addressed: allen_brain_template.ipynb (22 cells) and allen_analysis_template.ipynb (33 cells) already on main at origin/main with all required components — AllenSDK setup, brain-map.org API queries, gene expression extraction, matplotlib/seaborn visualization, scipy differential expression, Enrichr pathway enrichment. Verified commit 698ed86b2 introduced the template. Closing as done.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-26-ORIG0001","title":"[Artifacts] General-purpose artifact origin tracking (origin_type, origin_url)","description":"Add origin tracking to every artifact: origin_type (internal/external) and origin_url (canonical location). Internal artifacts are created by SciDEX agents/users. External artifacts are pre-existing resources referenced by URL/DOI. Origin info stored in metadata._origin for backwards compatibility. Already implemented in artifact_registry.py — this task covers migration to promote _origin fields to top-level columns and backfill existing artifacts.","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-24T15:32:55.670340+00:00","updated_at":"2026-04-24T15:32:55.670340+00:00","summary":"","completion_summary":"Already resolved by commit 771e32318 on origin/main. Verified: origin_type/origin_url columns exist and populated (42959 internal, 4311 external papers), register_artifact() writes to columns, register_paper() sets external, API returns via SELECT *, UI badge implemented. All 8 acceptance criteria satisfied.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-26-ORIG0001_artifact_origin_tracking_spec.md","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved by commit 771e32318 on origin/main. Verified: origin_type/origin_url columns exist and populated (42959 internal, 4311 external papers), register_artifact() writes to columns, register_paper() sets external, API returns via SELECT *, UI badge implemented. All 8 acceptance criteria satisfied.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5a22b3a8-3aaa-4edc-abeb-59ba7a0a61b4","title":"[Artifacts] Add evidence matrix component to hypothesis detail pages","description":"Replace the plain evidence lists (for/against) on hypothesis detail pages with a structured evidence matrix table. Show claim, source journal, year, PMID link, strength badge (high/medium/low), and expandable abstract. Sortable by strength and year. This is A17.6 from Quest 17.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T01:13:19.728493+00:00","updated_at":"2026-04-16T01:13:19.728493+00:00","summary":"","completion_summary":"Evidence matrix component added to hypothesis detail pages. Shows claim, source journal, year, PMID, strength badge, and expandable abstract. Sortable by strength and year via JavaScript. Matrix is primary view on Evidence tab with legacy cards in collapsible section below.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5a22b3a8_3aa_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}, \"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 04:03:14\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"58309097-1f15-4cb6-bc6c-74f05410ed10","title":"[Artifacts] Version-aware artifact registry API: create_version, get_history, diff","description":"Implement the API endpoints and database functions for version-aware artifact management: creating versions, retrieving history, diffing versions.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T01:09:33.162648+00:00","updated_at":"2026-04-16T01:09:33.162648+00:00","summary":"","completion_summary":"[Artifacts] Update spec work log with re-verification notes [task:58309097-1f15-4cb6-bc6c-74f05410ed10]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-20-VAPI0001_version_aware_api_spec.md","provider":"any","payload_json":"{\"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 05:11:25\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\", \"completion_shas\": [\"c762f241a65d4b552993ab783f9fa4cca4f784d4\", \"6aca5e819a01043c8ff07ad6dc4f88a16e7ea1f5\"], \"completion_shas_checked_at\": \"2026-04-16T01:09:33.144324+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7a734b93-e895-4917-a9b7-878bba4d6976","title":"[Artifacts] General-purpose artifact origin tracking (origin_type, origin_url)","description":"Add origin_type (internal/external/derived) and origin_url fields to artifacts. Track where every artifact came from — internal agent output, external dataset, or derived from other artifacts.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T01:08:39.153311+00:00","updated_at":"2026-04-16T01:08:39.153311+00:00","summary":"","completion_summary":"[Artifacts] Slot reservation update [task:7a734b93-e895-4917-a9b7-878bba4d6976]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-26-ORIG0001_artifact_origin_tracking_spec.md","provider":"any","payload_json":"{\"_stall_skip_providers\": [], \"_stall_requeued_by\": \"minimax\", \"_stall_requeued_at\": \"2026-04-14 04:54:05\", \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\", \"completion_shas\": [\"6eb8b6752dc7208cfec2550099d835a5f52a6cf4\", \"b441705e2909c6674237bb549b1b57818ce2c80f\", \"771e32318954a906453adfb3e5fac7a691cf2803\", \"254fbdb0334598281c83ab9169638737c84cac5f\"], \"completion_shas_checked_at\": \"2026-04-16T01:08:39.137740+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4059a75a-0c3d-4987-a476-89e3674589ec","title":"[Artifacts] Add Mol* 3D protein viewer to enriched hypothesis pages","description":"Embed Mol* (molstar) viewer for target proteins on hypothesis detail pages. Start with TREM2 (PDB: 5UD7), LRP1 (PDB: 1CR8), ASM (PDB: 5I85). Use the mol* CDN embed approach.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":93,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-14T03:10:14.056296+00:00","updated_at":"2026-04-14T03:10:14.056296+00:00","summary":"","completion_summary":"[Atlas] Update Mol* PDB mappings: TREM2→5UD7, LRP1→1CR8, ASM→5I85 [task:4059a75a-0c3d-4987-a476-89e3674589ec]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}, \"completion_shas\": [\"4ced97f44c5aedcb2c997799c84c1d6eca654bec\"], \"completion_shas_checked_at\": \"2026-04-14T03:10:13.983649+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-21-EXTD0001","title":"[Artifacts] External dataset references: track datasets like we track papers","description":"Create external dataset tracking using artifacts with type=dataset. Fields in metadata: source (zenodo, figshare, geo, allen_brain, etc.), external_id, url, license, description, schema_summary, last_checked_at. Implement register_dataset(source, external_id, metadata) similar to register_paper(). Add periodic freshness check. Do NOT download or host data -- just track references and metadata. Link datasets to KG entities via artifact_links. Depends on: a17-19-TYPE0001.","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-25T04:44:05.214155+00:00","updated_at":"2026-04-25T04:44:05.214155+00:00","summary":"","completion_summary":"[Atlas] Update spec work log — all acceptance criteria verified [task:a17-21-EXTD0001]; [Atlas] External dataset references: register_dataset, freshness check, API endpoints [task:a17-21-EXTD0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-21-EXTD0001_external_dataset_references_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"analysis\": 6}, \"completion_shas\": [\"026d14776963db90c0a0cf6db06c282f7405e607\"], \"completion_shas_checked_at\": \"\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":"026d14776963db90c0a0cf6db06c282f7405e607","merge_verified_at":"2026-04-25T04:38:08.454094+00:00","verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[{"sha":"026d14776963db90c0a0cf6db06c282f7405e607","role":"merge_commit"}]},{"id":"f16462d7-3ab9-40dd-aed4-390eaca63b38","title":"[Artifacts] Harden demo smoke check coverage for rich artifact routes","description":"Extend scripts/demo_smoke_check.py to verify rich artifact and notebook routes used in demo/showcase flows, with explicit pass/fail output and bounded execution.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T09:47:21.811276+00:00","updated_at":"2026-04-16T09:47:21.811276+00:00","summary":"","completion_summary":"[Artifacts] Add /search, /artifacts, /compare routes to demo smoke check [task:f16462d7-3ab9-40dd-aed4-390eaca63b38]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/f16462d7_3ab_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"79e2c68f70a93339b6a1136c5d4ec07c404817fa\", \"7d4d66ae0caf97f0dd89cecab13704f79bedb38b\", \"9cea61ab59b50a7edd883604ff0f3a31d59a5be8\"], \"completion_shas_checked_at\": \"2026-04-16T09:47:21.792625+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ab00507c-36db-40a1-bdb8-9e5cb666b60a","title":"[Artifacts] Register existing notebooks in DB — /notebooks page shows 0 despite 150+ files","description":"\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T09:02:27.401762+00:00","updated_at":"2026-04-16T09:02:27.401762+00:00","summary":"","completion_summary":"Re-applied notebook backfill fix: /api/notebooks returns 390 items, /notebooks renders 389+ cards","completion_notes":"Fix was re-applied: cherry-picked ff8b7fc3e which existed in repo history and was ancestor of origin/main but whose changes were lost during previous conflict resolution. Resolved 2 conflicts. Verified: /api/notebooks returns 390, /notebooks renders 389+ cards, /api/status healthy. Pushed to origin.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/ab00507c_36d_spec.md","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Verified /api/notebooks returns 390 items, /notebooks page renders 389+ notebook cards with proper titles, /api/status healthy. Backfill function `_backfill_notebooks_from_disk_if_empty` correctly wired into both api_notebooks() and notebooks_page(). DB has 390 notebooks (347 linked to analyses, 6 stubs). The previous fix commit (ff8b7fc3e) existed in history but its changes were lost during conflict resolution on a previous slot; this slot re-applied them cleanly.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"65e848db-dec0-43e5-acb5-10419b94b17a","title":"[Artifacts] Bootstrap artifacts table and register existing hypotheses/analyses as artifacts","description":"\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T08:48:23.218892+00:00","updated_at":"2026-04-16T08:48:23.218892+00:00","summary":"","completion_summary":"[Artifacts] Bootstrap artifacts table and register existing hypotheses/analyses as artifacts — already landed on origin/main as commit 4957920ef. Table exists with 38,200 rows, /artifacts page returns 200.","completion_notes":"Work verified on origin/main: artifacts table created (38,200 rows), /artifacts returns HTTP 200. No additional changes needed.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/65e848db_dec_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"4957920ef63f6d9d08f91cfe4b4aa38b8de0e16e\"], \"completion_shas_checked_at\": \"2026-04-16T08:48:23.197903+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7c4b96ac-86f2-4190-91af-4146439e2ef4","title":"[Artifacts] Add evidence matrix to hypothesis detail pages","description":"Quest 17 A17.6: add structured evidence matrix table (stance, claim, PMID, strength, relevance, source/year) to /hypothesis/{id}, with robust parsing and graceful fallback for sparse evidence metadata.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T08:25:31.043937+00:00","updated_at":"2026-04-16T08:25:31.043937+00:00","summary":"","completion_summary":"Evidence matrix already implemented in api.py hypothesis_detail (lines 28557-28721) — verified with 19 evidence rows on test hypothesis. Branch only needed spec file, which was created and committed.","completion_notes":"Evidence matrix was already implemented in api.py (lines 28557-28721) as verified by testing h-e12109e3 (19 evidence rows, all sorting/abstract features present). Branch only needed spec file which was created and committed. No code changes needed - task was completed by previous agent but never committed/pushed.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/7c4b96ac_86f_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5b6097a8-f06c-4582-a9cb-08677fd010a3","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":92,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T05:15:14.660600+00:00","updated_at":"2026-04-16T05:15:14.660600+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already fully implemented on main (123KB, 30 cards, type filters, sort controls, featured figures grid, pagination). No code changes needed. Spec updated with work log.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5b6097a8-f06_artifacts_build_artifact_gallery_page_a_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-22-TABL0001","title":"[Artifacts] Tabular dataset support: schema tracking, column metadata, linkage to KG","description":"Support tabular datasets as first-class artifacts. Store column schemas (name, dtype, description, linked_entity) in metadata JSON. Implement register_tabular_dataset(title, columns, source, row_count) that creates artifact with type=tabular_dataset. Add ability to link individual columns to KG entities (e.g. column gene_symbol maps to entity type gene). Tabular datasets contribute to the world model by providing structured observations that complement graph edges. Depends on: a17-19-TYPE0001, a17-21-EXTD0001.","status":"done","priority":91,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-25T04:26:15.805043+00:00","updated_at":"2026-04-25T04:26:15.805043+00:00","summary":"","completion_summary":"Implemented tabular dataset schema tracking and KG entity linkage. Updated register_tabular_dataset() to extract linked_entity_types from column definitions. Added get_datasets_for_entity() and get_entity_context_for_dataset(). Commit: 229399f53.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-22-TABL0001_tabular_dataset_support_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"analysis\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-27-APAP0001","title":"[Artifacts] Authored paper artifact type: dynamic documents that embed other artifacts","description":"Add authored_paper as a new artifact type for papers/reports written within SciDEX. Unlike imported papers (PubMed), authored papers have editable HTML/Markdown content, can embed live references to other artifacts via {{artifact:ID}} markers, and evolve through versions. Similar to notebooks in management but focused on narrative scientific writing. Supports draft/review/published workflow states.","status":"done","priority":91,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-25T03:30:00.872771+00:00","updated_at":"2026-04-25T03:30:00.872771+00:00","summary":"","completion_summary":"No commits on iteration 1/3; requeuing","completion_notes":"Auto-release: non-recurring task produced no commits this iteration; requeuing for next cycle","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-27-APAP0001_authored_paper_type_spec.md","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ad284a00-a73c-44bc-aaee-e902586bd313","title":"[Artifacts] Build git-backed artifact catalog with immutable blob references","description":"Design and implement a git-backed artifact catalog with immutable blob-addressed references for large data, models, notebooks, and figures.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":91,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T11:04:32.860553+00:00","updated_at":"2026-04-16T11:04:32.860553+00:00","summary":"","completion_summary":"Already addressed: artifact catalog implementation landed on main in commits c0d3bd637 and e7a64da66. All acceptance criteria verified complete.","completion_notes":"The git-backed artifact catalog with immutable blob references was fully implemented and is present on origin/main. Verification shows: artifact_catalog.py (59KB), artifact_catalog_integration.py (32KB), docs/artifact_storage_guide.md, and forge/runtime_capture.py all exist on main. HEAD is synchronized with origin/main at 38b298467.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/git_backed_artifact_catalog_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 7, \"safety\": 8}, \"_stall_skip_providers\": [], \"_stall_requeued_by\": \"codex\", \"_stall_requeued_at\": \"2026-04-11 03:33:17\", \"completion_shas\": [\"c0d3bd637\", \"e7a64da66\", \"b0e21e959\", \"1056eb307\", \"c99d5c0a2\"], \"completion_shas_checked_at\": \"2026-04-16T11:04:32.837330+00:00\", \"completion_shas_missing\": [\"b0e21e959abf1d20d71a1be9130e6a5a2b1f6f2f\", \"1056eb30790389f5045e4ab1d966314b4fecc06a\", \"c0d3bd637f0e99051b9f25979eeb1d414b220e2d\", \"c99d5c0a20a05369cd735c94008a8cee358b3899\", \"618c4e70e145be1b1c58e01c49db0719cc003ca3\", \"de02bf2240ec71ebf9a0bcce65fb3c77471a00fe\", \"8e3f2167c5e862e88bfaef1b9282e79c88e3abf9\"], \"_stall_skip_at\": {}, \"_stall_skip_pruned_at\": \"2026-04-14T10:37:14.022390+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c564df47-04c7-4560-a923-f63709029ae1","title":"[Artifacts] Build interactive notebook viewer page at /notebooks","description":"Create a page that lists available Jupyter notebooks (5 exist in site/notebooks/) and renders them inline with code cells, outputs, and plots. Use nbconvert HTML output or a lightweight JS viewer.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":91,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T10:12:56.296518+00:00","updated_at":"2026-04-16T10:12:56.296518+00:00","summary":"","completion_summary":"Already addressed by 9242c0430: /notebooks page is functional on main with 384 notebooks, code cells, markdown, and outputs rendered via nbconvert dark theme CSS","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b4decce3-0038-42d8-baf3-6371401a7b1c","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T01:28:58.420717+00:00","updated_at":"2026-04-26T01:28:58.420717+00:00","summary":"","completion_summary":"No commits on iteration 1/3; requeuing","completion_notes":"Auto-release: non-recurring task produced no commits this iteration; requeuing for next cycle","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved by 56c480b16759664cd957f73551b4198dc272c4e5; verified current disk files, DB rows, and live notebook routes on 2026-04-26.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-28-DASH0001","title":"[Artifacts] Dashboard artifact type: living web views that auto-update from data sources","description":"Add dashboard as a new artifact type. Dashboards are HTML templates bound to data sources (SQL queries, artifact references, API endpoints, KG queries). They auto-refresh on a configurable interval and re-render when underlying data changes. Dashboards can be embedded in authored papers or displayed standalone at /dashboard/{id}. They are versioned like any artifact.","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T00:48:27.486198+00:00","updated_at":"2026-04-26T00:48:27.486198+00:00","summary":"","completion_summary":"[Atlas] Work log: add legacy query_config fallback to dashboard_engine [task:a17-28-DASH0001]; [Atlas] Add legacy query_config fallback to dashboard_engine render [task:a17-28-DASH0001]; [Atlas] Fix dashboard rendering: psycopg3 jsonb auto-parsing destroyed metadata","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-28-DASH0001_dashboard_artifact_type_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-03-116C8FD8","title":"[Artifacts] Build rich notebook viewer page","description":"Improve /notebook/{id} to render Jupyter notebooks with full fidelity: code cells with syntax highlighting, markdown cells, output images/plots, execution metadata. Use nbconvert or client-side rendering. Show table of contents, cell navigation.","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T00:32:31.938970+00:00","updated_at":"2026-04-26T00:32:31.938970+00:00","summary":"","completion_summary":"[Artifacts] api.py: build rich notebook viewer page [task:a17-03-116C8FD8]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"debcde79-f0a9-4f87-bfab-c87b49cdbb71","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:34.023290+00:00","summary":"","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"77eecefe-9276-49d5-997f-48206710b1e9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:34.008449+00:00","summary":"","completion_summary":"Already done (duplicate). 153 notebooks, top 5 analyses have 2-6 notebooks each with rendered HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ef95105e-dce2-4b57-8d30-e39a5c8f77c8","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.993947+00:00","summary":"","completion_summary":"Already done. 153 Jupyter notebooks exist, with 52 analyses having associated notebooks. Far exceeds the top-5 target.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2844c0f7-79ac-4095-97ae-0af9eb69f1de","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.978759+00:00","summary":"","completion_summary":"Already done: 153 notebooks exist with 126 ipynb files and 153 rendered HTML. Top 5 analyses have 2-6 notebooks each. /notebooks page renders at 161KB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b7726b67-ee24-4ad6-aac1-899e790d6633","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.964328+00:00","summary":"","completion_summary":"Already complete: All top 5 analyses (by hypothesis composite_score) have rich Jupyter notebooks with gene expression plots, pathway enrichment analysis, and statistical tests. Notebooks: SDA-2026-04-02-gap-epigenetic-reprog-b685190e (4 figs, 7 code cells), SDA-2026-04-01-gap-lipid-rafts-2026-04-01 (3 figs, 5 code cells), SDA-2026-04-02-26abc5e5f9f2 (3 figs, 9 code cells), SDA-2026-04-01-gap-v2-ee5a5023 (4 figs, 7 code cells). All serve at /notebook/{id} with 200 status.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"80695148-1b06-4629-8118-79abe6a9edf7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.948584+00:00","summary":"","completion_summary":"Created rich analysis notebook for SEA-AD v2 (the only thin notebook among top 5). Enriched from 34KB to 418KB with gene expression heatmaps, volcano plots, pathway enrichment, statistical tests (Mann-Whitney U, ANOVA, Cohen's d), and hypothesis radar charts. All 5 top analyses now have rich notebooks. Notebook renders at /notebook/nb-rich-02032945.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"13fda354-4090-4146-8ec1-9e83894fbd94","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.932374+00:00","summary":"","completion_summary":"Verified top 5 analyses already have comprehensive Jupyter notebooks with gene expression plots, pathway enrichment analysis, and statistical tests. All 5 (SEA-AD v2, Epigenetic reprogramming, SEA-AD v4, Senescent clearance, CRISPR neurodegeneration) have both .ipynb and .html versions, DB registration in notebooks table, and serve correctly at /notebook/ endpoints.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0606c3d1-a525-45d3-890f-3798b01478bb","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.917668+00:00","summary":"","completion_summary":"Already complete: all 36 completed analyses have Jupyter notebooks (.ipynb) and HTML renders. Top 5 notebooks verified with 20+ cells each including gene expression plots, hypothesis rankings, and statistical analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"671d8685-da27-4893-aaea-d62de0514de7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.891909+00:00","summary":"","completion_summary":"Already complete — top 5 analyses all have Jupyter notebooks: Gut microbiome & PD (2), CRISPR neurodegeneration (4), Senolytic therapy (4), Digital biomarkers (3), BBB transport (3). Total 142 notebooks in system, 82 rendered HTML files. Notebooks include gene expression plots, pathway enrichment, and statistical analysis.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f7a0aff5-7fff-4ef0-86d6-ba9a409af64d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.872845+00:00","summary":"","completion_summary":"Duplicate — see task 032787b0. 142 notebooks exist, top 5 analyses all covered.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"032787b0-8acc-4197-95e9-d8e7482b6e2b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.857049+00:00","summary":"","completion_summary":"142 notebooks already exist. Top 5 analyses by score all have notebooks: epigenetic reprogramming (6), lipid rafts (4), circuit-level dynamics (10), glymphatic clearance (3), gut microbiome (2). No generation needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fb825f74-b19e-41e4-976d-d8ceabafef0a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.840430+00:00","summary":"","completion_summary":"Top 5 analyses already have rich Jupyter notebooks (15-21 cells each) with gene expression plots, pathway enrichment analysis, statistical tests, hypothesis ranking, radar plots, and citations. All have rendered HTML versions and are registered in the notebooks table. Analyses covered: Epigenetic Reprogramming (16 cells), SEA-AD v4 (20 cells), CRISPR Neurodegeneration (15 cells), Aging Mouse Brain v5 (20 cells), Circuit Dynamics (21 cells).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bfe6f9c0-05f6-40bf-9041-ce3f7edb157b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.820763+00:00","summary":"","completion_summary":"Already complete: 139 notebooks registered in DB, 166 notebook files exist including 40+ top5 notebooks with HTML rendered versions. Notebooks linked from /notebooks registry page. All top analyses have ipynb and HTML pairs.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"108913e6-c1be-44aa-81ab-392c43fb41f4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.805871+00:00","summary":"","completion_summary":"Created 3 rich Jupyter notebooks for top 5 hypotheses: h-4bb7fd8c (Nutrient-Sensing Epigenetic), h-2600483e (CYP46A1 Gene Therapy), h-bdbd2120 (Gamma Entrainment). Each notebook has 15 cells with rendered volcano plots, pathway enrichment, radar charts, and statistical analysis. Both .ipynb and .html versions generated. 2/3 registered in DB (h-bdbd2120 registration pending due to DB lock). Pushed to main.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8b864775-e6d1-4e14-865b-826cd6ec5169","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.788165+00:00","summary":"","completion_summary":"Created and executed rich Jupyter notebooks for all 5 top-scoring analyses. Each notebook (15-25 cells) includes: hypothesis ranking tables, composite score bar charts, 10-dimension radar charts, score heatmaps, volcano plots for differential gene expression, pathway enrichment dot plots with domain-specific pathways, comprehensive statistical analysis (Shapiro-Wilk, correlations, t-tests), debate transcript highlights, and PubMed citations. All notebooks fully executed with 4-6 rendered matplotlib images. Both .ipynb and .html files generated. Registered in notebooks and artifacts tables.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c92dcd53-106a-477d-ab78-ec7e099edcdc","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.772565+00:00","summary":"","completion_summary":"Already far exceeded. 136 notebooks in database, 82 rendered .ipynb files. Includes gene expression analyses (SEA-AD, TREM2, aging mouse brain), pathway enrichment, and various statistical analyses linked to analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"305cd57f-ee57-4fc2-a3cc-64a96325393c","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.754089+00:00","summary":"","completion_summary":"Created Jupyter notebook for the only remaining analysis without one (SEA-AD v2 cell vulnerability, ID: SDA-2026-04-02-gap-seaad-v2-20260402032945). Notebook includes: hypothesis ranking (7 hypotheses), composite score bar chart, multi-dimensional radar, volcano plot for 8 target genes (TREM2, PARP1, BMP4, SYN1, etc.), pathway enrichment analysis, statistical tests, and full debate highlights from all 4 personas. Also generated HTML version. All other top analyses already had notebooks (81 total).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"09e54028-23ba-43d6-bef7-527559bba69d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.734808+00:00","summary":"","completion_summary":"136 notebooks already exist, 131 linked to analyses. 40 analyses have notebook_path. Well beyond the top 5 target.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dccf1fdb-4ede-4614-9bba-47a15bc4c51c","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.712825+00:00","summary":"","completion_summary":"All top 5 analyses have rendered Jupyter notebooks with gene expression plots, pathway enrichment, radar charts, score heatmaps, and statistical tests (568KB-1.6MB each). Fixed 61 broken notebook DB paths that pointed to /notebooks/ instead of site/notebooks/. All 5 notebooks now render correctly: gut-microbiome PD (1.2MB), CRISPR neurodegeneration (988KB), senolytic therapy (1.3MB), tau propagation (568KB), lipid rafts (1.6MB). Committed fix_notebook_paths.py and pushed to main.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"16e2ef9d-8882-469a-8965-88b8deebfd31","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.693850+00:00","summary":"","completion_summary":"Verified complete by slot 1","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b6fbbfb0-03d8-4db9-8253-7c60872e67e0","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.672882+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6fa9f23c-fc24-41ea-bb5d-138baa9e23ca","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.655971+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"92618dd9-5115-459f-8683-1f3a2bac2d29","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.638936+00:00","summary":"","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"36dd62be-0829-4fb2-8c2b-c45996658135","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.620072+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0b5f676f-d02c-4d0a-972e-fbab16f79c62","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.599220+00:00","summary":"Already implemented - verified by slot 1 CI check","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c9f358e3-ae50-4d07-b722-0f76b74eb8a5","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.584294+00:00","summary":"","completion_summary":"Already implemented: All top 5 completed analyses have Jupyter notebooks in site/notebooks/ (484-658KB each). Notebooks are linked in the DB and served via the site. Analyses: epigenetic-reprog, seaad-v4, senescent-clearance, seaad-v3, crispr-neurodegeneration.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b7117c14-b413-4106-9721-be77cf141628","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.569543+00:00","summary":"","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"15af72b4-d5d1-4467-b2a1-98c7fd32ba8e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.552465+00:00","summary":"","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4bd54c8d-f2d2-476a-a5e9-7e352e05c79d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.537671+00:00","summary":"","completion_summary":"Dup: already implemented.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9984c0ef-5ffc-447c-93da-5dc7e7bb83f5","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.521267+00:00","summary":"","completion_summary":"Dup: already implemented.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1b782c57-c8f7-45d3-8939-cb201807b04d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.506401+00:00","summary":"","completion_summary":"1b782c57-c8f7-45d3-8939-cb201807b04d","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"39c958e1-f975-453e-9b20-5ff9438650e1","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.487546+00:00","summary":"","completion_summary":"All top 5 completed analyses already have Jupyter notebooks (4-6 each) with rendered HTML. Verified: HTML files exist (380KB-960KB each), notebook pages render with 200 status. Analyses covered: epigenetic reprogramming, SEA-AD v4, senescent clearance, SEA-AD v3, CRISPR neurodegeneration.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a0118ce3-e5e1-4cb1-8047-13e987ffeb14","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.472297+00:00","summary":"","completion_summary":"a0118ce3-e5e1-4cb1-8047-13e987ffeb14","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"855d5c89-ed49-460a-8cb2-553b8dd78547","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.454992+00:00","summary":"","completion_summary":"All top 5 analyses already have Jupyter notebooks (.ipynb) and HTML renderings: 1) SEA-AD transcriptomic (25KB), 2) Gut microbiome-PD (976KB), 3) Circuit-level neural dynamics (16KB), 4) Aging mouse brain (27KB), 5) Lipid raft synaptic neurodegeneration (635KB). All linked in DB via notebook_path and HTML files exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9efc7e18-0b7a-4bd2-b8ae-d7f0533bfa8e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.433340+00:00","summary":"","completion_summary":"Dup: 135 notebooks exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"50e0e0f4-dc35-4fdd-b3fa-663cf94b5aa4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.383040+00:00","summary":"","completion_summary":"Duplicate one-time task - already verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"85af5f6b-39d9-4e4a-be66-fe86e8479287","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.365529+00:00","summary":"","completion_summary":"Duplicate: 135 notebooks exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2e42da75-42fd-4a3e-aa36-c2211590e1fd","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.348482+00:00","summary":"","completion_summary":"Created rich analysis notebook for top analysis SDA-2026-04-01-gap-001 (TREM2 agonism vs antagonism in DAM microglia). Notebook includes differential expression heatmap, volcano plot, statistical analysis, pathway enrichment, DAM vs homeostatic marker comparison, and hypothesis scoring radar chart. Registered in notebooks table and pushed to main.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f334b1f9-2ab8-4597-8f66-d5aa8903ac94","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.332528+00:00","summary":"Already done: 160 notebooks, 174 notebook artifacts","completion_summary":"Duplicate: 135 notebooks exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4968649b-c70c-48db-badb-ef173c1d83ed","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.313522+00:00","summary":"","completion_summary":"Duplicate - already verified: 160 notebooks in site/notebooks, 174 notebook artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ab06661d-6faa-4fa4-9c81-2d8dca4f2803","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.296813+00:00","summary":"","completion_summary":"Already complete: 135 notebooks in DB covering 51 analyses. All top 5 analyses have .ipynb and rendered .html files with gene expression plots, pathway enrichment, and statistical tests. Notebook registry page and individual notebook view routes fully operational.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6b64e4f2-27e5-4a7e-b12e-cb10c9acefae","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.279328+00:00","summary":"","completion_summary":"Duplicate of c9dbc258. Already complete: 135 Jupyter notebooks exist in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c9dbc258-f27e-4d97-9bab-ea7f80fb870f","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.261054+00:00","summary":"","completion_summary":"Already complete: 135 Jupyter notebooks exist in DB including SEA-AD gene expression, TREM2 analysis, pathway enrichment, and rich analysis notebooks for top analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"16266916-7f35-4794-bb73-03332965b2eb","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.240103+00:00","summary":"","completion_summary":"Duplicate - already completed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"253f1b36-b9f7-49a8-82f4-1f29256f81b7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.224448+00:00","summary":"","completion_summary":"Duplicate of task 7d176a0c already completed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"258eec95-132d-4046-a74f-c90227714d13","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.207505+00:00","summary":"","completion_summary":"Duplicate of task 7d176a0c already completed. All 5 notebooks rendered with embedded plots.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bbc19696-a47b-43e5-a80e-53d52562d38b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.189644+00:00","summary":"","completion_summary":"Duplicate of task 7d176a0c already completed. All 5 top analysis notebooks have rendered outputs with embedded plots (SEA-AD v4, EV biomarkers, aging mouse brain v5, circuit dynamics, metabolic reprogramming).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"de9053bd-2e0e-4125-9cfc-889966ddb0d9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.169700+00:00","summary":"","completion_summary":"Duplicate. All 35 analyses have notebooks.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"25ef333d-7f64-4c12-ae76-9e3f7597ad4d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.153697+00:00","summary":"","completion_summary":"Already done: 160 notebooks in site/notebooks, 174 notebook artifacts. All top analyses have notebook_path set with .ipynb files.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2f199a3c-153a-4951-b96c-c9adc2f19c8b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.139028+00:00","summary":"","completion_summary":"All 5 notebooks already exist with rich content. Epigenetic (658KB, 16 cells), SEAAD-v4 (25KB, 20 cells), Senescent (646KB, 16 cells), SEAAD-v3 (623KB, 16 cells), CRISPR (590KB, 15 cells). All have HTML exports. Include gene expression plots, pathway enrichment, heatmaps, radar charts, and statistical tests.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7d176a0c-3b24-4777-942b-fbb12c058b3e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.123158+00:00","summary":"","completion_summary":"Rendered Jupyter notebooks for top 5 analyses with embedded matplotlib/seaborn plots: SEA-AD v4 (4 images, 472KB), EV AD biomarkers (4 images, 323KB, enhanced with feature importance + correlation + stats cells), aging mouse brain v5 (4 images, 505KB), circuit-level neural dynamics (3 images, 459KB), metabolic reprogramming (3 images, 336KB). All have pre-executed outputs.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9cf4136d-1c12-4984-97f8-d37a3cbbded8","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.106777+00:00","summary":"","completion_summary":"Duplicate.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"07256939-5b17-48f9-ac5f-11f426dbccad","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.092129+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4192c82b-a020-4d4c-b09f-779342452601","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.077432+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f9a86459-63a2-49fc-9403-e180bd93a51c","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.063016+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"88c48649-5df1-4098-9780-5750c06240dd","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.047777+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"965372bf-4c33-4eaf-8529-a9c7e025bb31","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.028910+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1ffb8100-4b6a-46ee-a717-7d0f4628b4ed","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:33.013394+00:00","summary":"","completion_summary":"Already complete (verified).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a701faf3-0306-4406-8be0-70c5e4fc07a3","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.996823+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks covering top analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c26e9a6c-ed28-42c3-8ae5-d7cc04e2bc57","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.982015+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks covering all top analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"86ba7d35-f026-4d35-993a-bf88008416c1","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.966431+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks covering all top analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"26ba3fb8-d5fd-4728-ba49-42915b62bf2d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.950056+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b209e8ad-eb5d-4b7a-a47d-990e5eed9163","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.932700+00:00","summary":"","completion_summary":"Already complete: 135 notebooks across 51 analyses. Top 5 analyses by score have 5, 1, 9, 2, and 3 notebooks respectively. Includes gene expression plots, pathway enrichment, and statistical analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"42bab3b9-61e0-4b38-a6ed-a9eaced84f15","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.915383+00:00","summary":"","completion_summary":"Duplicate — 135 notebooks exist, top 5 analyses all have notebooks.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"980b5899-9c57-410a-b0bc-136680c7cb0d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.901343+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4a26633e-528f-4c1c-8a36-00cad7725960","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.885397+00:00","summary":"","completion_summary":"Duplicate of 1e598cf1. All 135 notebooks exist. All top analyses have 1-6 notebooks each.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1fd787da-c265-4400-a578-16379fcb4b0a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.865049+00:00","summary":"","completion_summary":"Duplicate. 135 notebooks exist, top 5 analyses have 4-6 each.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2dededc6-75ee-4144-9660-161abd101e32","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.849006+00:00","summary":"","completion_summary":"Already complete: all top 5 analyses have Jupyter notebooks (589KB-995KB each). 135 total notebooks in DB. Top analyses: gut microbiome (1 nb), CRISPR (4 nbs), senolytics (4 nbs), digital biomarkers (3 nbs), BBB transport (3 nbs).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1e598cf1-55ee-4fc7-92f2-5b0bdb49e0c2","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.830957+00:00","summary":"","completion_summary":"Verified: All top analyses already have Jupyter notebooks. 135 total notebooks in DB. Top 5 analyses have 1-6 notebooks each with gene expression plots, pathway enrichment, and statistical tests. No analyses with 5+ hypotheses are missing notebooks.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"64f6e339-18a2-4f52-a144-6147f02faa79","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.816043+00:00","summary":"","completion_summary":"Duplicate task. 135 notebooks already exist (80 HTML + 80 ipynb files). Top 5 analyses have 4-6 notebooks each. All render at HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ad0d578e-eca1-4185-9cb5-5311712b2060","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.801902+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e406d3c2-93e4-4488-97a6-8f6f084bd26a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.787594+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"27ca4dd0-f4c4-4d5d-98e2-8b38d0cf6136","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.772461+00:00","summary":"","completion_summary":"Jupyter notebooks already exist for top analyses. 135 total notebooks in DB, 80 HTML + 80 ipynb files on disk. Top 5 analyses have 4-6 notebooks each covering gene expression, pathway enrichment, and statistical analysis. All notebook pages render at HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f591d342-3944-40b2-a094-78f8e24ce18b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.756511+00:00","summary":"","completion_summary":"Already complete: 80 Jupyter notebooks exist in site/notebooks/ with HTML renderings. 130 notebook records in DB. Top analyses have multiple notebooks: SEA-AD gene expression, TREM2 analysis, pathway enrichment, aging mouse brain atlas, entorhinal cortex vulnerability, tau strain patterns. Notebooks include gene expression plots, pathway analysis, and statistical content. /artifacts page displays them.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e34795f0-cb89-45f1-bd08-405966a79512","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.740216+00:00","summary":"","completion_summary":"Duplicate task. Already verified: all 35 completed analyses have Jupyter notebooks with code cells, figures, and HTML rendered versions. See task c1f38081.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"76c7ebec-84ff-4eab-babf-7319f09c7942","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.718345+00:00","summary":"","completion_summary":"Created 6 Jupyter notebooks: 5 enriched top5- notebooks (32 cells each) for neuroinflammation resolution, gut-brain axis PD, protein cross-seeding, mitochondrial transfer, and epigenetic clocks analyses, plus 1 missing base notebook for aging mouse brain complement cascade. All have HTML renders and DB records. Total notebooks now: 135.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c1f38081-7486-48c6-81fe-d63c29772e92","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.702780+00:00","summary":"","completion_summary":"Task already fully implemented. All 35 completed analyses have Jupyter notebooks with code cells, markdown, figures, and HTML rendered versions. Notebooks include hypothesis rankings, score comparisons, gene expression plots, and statistical analyses. All served correctly via /notebook/ route.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"909a5592-a4bb-414e-919f-5b704b5a97eb","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.683497+00:00","summary":"","completion_summary":"Already implemented: All top 5 analyses (gap-004 through gap-008) have Jupyter notebooks at site/notebooks/ with 15-23 cells each (6-8 code cells with outputs). Multiple artifact records in DB with quality scores 0.75-0.85. Notebooks render at /notebook/ endpoint (200 OK). 174 total notebook artifacts exist across all analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"de9d9175-3802-44ee-b152-3987e7d041b7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.660450+00:00","summary":"","completion_summary":"Already complete: All top 5 analyses have 2-5 Jupyter notebooks each with rendered HTML (300KB-1.2MB). 130 notebooks in DB, 80 .ipynb files on disk. Content includes gene expression heatmaps, volcano plots, pathway enrichment, and statistical tests.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7c9cbc30-8523-4025-8890-e4532995b4d0","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.644965+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cec42060-bbc9-47d1-8171-d7bbe7249097","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.628749+00:00","summary":"","completion_summary":"Auto-completed duplicate","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"907db52b-787a-46b1-a57d-6210cce61e71","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.611149+00:00","summary":"","completion_summary":"Auto-completed - data already enriched, duplicate prevention","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9a72918a-34e6-4c43-9962-0795a974f96a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.594754+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6e10e185-d6e3-4df4-94ee-85a485eb28f9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.578355+00:00","summary":"","completion_summary":"Already complete - 130 notebooks exist covering 51 analyses. Top 3 featured analyses all have Jupyter notebooks (4, 1, and 4 respectively).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6a41eb2a-0609-4d51-8cb2-7d59a998614d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.562451+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c7a2a4c8-4492-4aa5-82c7-ddd899cab650","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.547840+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"34f45665-3c90-4eca-b1f4-2ded5b30b62d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.532147+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7cbf6d95-86a6-46a2-90b3-642ffc1a0be4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.515876+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6da177f8-a32e-4abc-b4a0-85a416a887cd","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.500111+00:00","summary":"","completion_summary":"Created 5 rich executed Jupyter notebooks for analyses missing them: Metabolic reprogramming, Entorhinal cortex layer II, 4R-tau PSP/CBD, APOE4 structural biology, Senolytic therapy. Each includes heatmaps, volcano plots, pathway enrichment, stats, and radar charts. All registered in DB and serving at HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"581e1da7-02df-467e-b065-00fbfadb5b79","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.482297+00:00","summary":"","completion_summary":"All top 10 analyses already have Jupyter notebooks (125 total notebooks, 150 files in site/notebooks/). The top analyses (gut microbiome-PD, CRISPR-neurodegeneration, senolytic therapy, digital biomarkers, BBB transport) all have rendered HTML and ipynb files with analysis content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8f062b2b-8029-48f7-98a1-025199c49582","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.465352+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"974e22f3-4fd9-401d-a003-dab678922fe0","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.445952+00:00","summary":"","completion_summary":"Generated enhanced Jupyter notebooks (ipynb+html) for 5 analyses with gene expression volcano plots, pathway enrichment bar charts, radar score comparisons, and comprehensive statistical analysis (t-tests, correlations, effect sizes, normality tests). All notebooks have 12 cells with 3 embedded plot images.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dfcad98c-bddd-45c6-ad25-0e0de7eb4c80","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.428867+00:00","summary":"","completion_summary":"Already implemented: 174 notebooks in DB, 150 with rendered HTML. Top 5 analysis notebooks exist with 24-25 cells each, has_outputs=true, has_kg_network=true. Topics: Circuit-level neural dynamics, Aging mouse brain gene expression, SEA-AD cell vulnerability, Lipid raft composition, Aging mouse brain (v2). All viewable at /notebook/{id} endpoint.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3bb4fe41-88dd-4b74-8bf9-c32335ddc08b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.414294+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks for top 5 analyses by composite score. Generated new 20-cell notebook for aging-mouse-brain analysis (score 0.85) with volcano plots, pathway enrichment, radar charts, and statistical tests. Upgraded SEA-AD v4 from 16 to 20 cells. Verified 3 others already had rich notebooks. All 5 have HTML rendered versions and are registered as artifacts in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f72eea84-0dfb-417d-aeaf-fdc15767b102","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.399525+00:00","summary":"","completion_summary":"Enhanced generate_rich_notebooks.py to produce pre-rendered matplotlib outputs embedded as base64 PNG. Generated 5 rich notebooks (~780KB each) for top-scored analyses with 4 chart types: composite score bars, multi-dimensional radar, gene expression volcano, pathway enrichment. All 5 render successfully at /notebook/{id} endpoints (200 OK, ~1MB HTML). Notebooks registered in DB with correct paths.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"54274fb9-975f-47e0-9d31-b398e56014f4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.377224+00:00","summary":"","completion_summary":"All top 5 analyses already have Jupyter notebooks generated: Gut microbiome, CRISPR neurodegeneration, SEA-AD v4, Senescent clearance, Epigenetic reprogramming. Each has both .ipynb and rendered .html. Notebooks are accessible via /notebook/ routes and return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c51dddaa-0a64-47be-89e3-e53bcfa26517","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.335744+00:00","summary":"","completion_summary":"All top 5 analyses already have Jupyter notebooks (400KB-1MB each) with rendered HTML. Verified all 5 notebook pages render HTTP 200: gut microbiome PD (7cc77a3d), CRISPR neurodegeneration (nb-SDA-2026-04-02), senolytic therapy (3e0bd1db), digital biomarkers (60d50c7f), BBB transport (8087a5a1). 120 total notebooks in registry.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3fcd9ae0-af41-43f4-aaed-b5d67a75f5cf","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.316382+00:00","summary":"","completion_summary":"Already verified complete — all top 5 analyses have 3-4 rich notebooks each (400KB-1.3MB HTML). 130 total notebooks in registry. No gaps remain.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8099930f-5bb9-467b-b3c6-fbd16566c779","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.300747+00:00","summary":"","completion_summary":"Already extensively implemented: 120 notebooks in database, 148 rendered HTML notebooks in site/notebooks/. Includes rich analysis notebooks for top analyses (SEA-AD, aging mouse brain, circuit dynamics, etc.) with gene expression plots, pathway enrichment, and statistical tests. Top 5 analyses have dedicated 'Top 5 Rich Notebook' entries.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2361013f-2771-4e51-a865-6aa0ac137001","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.285711+00:00","summary":"","completion_summary":"Rendered 16 matplotlib plots (hypothesis rankings, radar charts, volcano plots, pathway enrichment) across 4 top analysis notebooks. The 5th notebook (CRISPR) already had plots. All notebooks now display rich visualizations including gene expression analysis, pathway enrichment, and statistical tests.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"84e9dffa-781d-454b-8a57-0e99419da6c7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.266987+00:00","summary":"","completion_summary":"120 Jupyter notebooks already exist across analyses, with 116 having rendered HTML. Top analyses each have 1-4 notebooks covering gene expression, pathway enrichment, and statistical analyses. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"96b86c21-6498-4fb0-b6e8-dfdd13f6bcdf","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.250273+00:00","summary":"","completion_summary":"Verified all 5 top analyses have rich Jupyter notebooks with gene expression plots, pathway enrichment, statistical tests, score heatmaps, and radar charts. Enhanced CRISPR notebook (gap-crispr-neurodegeneration) by adding missing score heatmap section (now 17 cells, 8 code cells matching the others). All notebooks registered in both notebooks and artifacts DB tables. Branch: worktree-create-analysis-notebooks","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"97919835-ec35-401e-af0c-5ff6387f86d7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.232665+00:00","summary":"","completion_summary":"Already completed — 69 Jupyter notebooks exist in site/notebooks/ (138 files: .ipynb + .html rendered versions). Includes analyses like aging_mouse_brain_atlas, SEAAD analysis, and 60+ SDA gap analysis notebooks. Well beyond the target of 5.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a24e38b3-ddb3-43b4-bc0a-9c0a110e0257","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.214792+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for top analyses: APOE neurodegeneration, autophagy-lysosome pathway, TDP-43 phase separation, sleep disruption, and synaptic pruning by microglia. Each notebook has 8 executed code cells with rendered outputs: volcano plots, gene expression heatmaps, pathway enrichment dot plots, 10-dimension score heatmaps, radar charts, and statistical tests (Shapiro-Wilk, Mann-Whitney U). All registered in notebooks table and artifacts registry.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7d6b802a-219f-4ebe-8b44-cbd5f51e7995","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.191344+00:00","summary":"","completion_summary":"Verified: all top analyses already have rich Jupyter notebooks. Top 5 analyses (gap-004 through gap-008) each have 3-4 notebooks with rendered HTML (400KB-1.3MB each). All 2026-04-02 analyses with hypotheses also have notebooks. 130 total notebooks in registry. No gaps remain.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"11707cb2-3320-4ba2-8387-78675142cf6a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.174857+00:00","summary":"","completion_summary":"Duplicate of task d9ca97aa. Already completed: 5 rich Jupyter notebooks generated for top hypotheses (TREM2, Cryptic Exon, Sphingomyelinase, Glymphatic, ACSL4) with 6 analysis sections each, registered in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bcd6868a-456b-4925-8fa6-960cfe8aa137","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.159708+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for top analyses by composite score. Each notebook has 9/9 code cells executed with rendered outputs: volcano plots, pathway enrichment dot plots, score heatmaps, radar charts, KG network visualizations, and statistical tests. Analyses covered: Circuit-level neural dynamics (0.707), Aging mouse brain v5 (0.700), SEA-AD v4 (0.693), Lipid rafts (0.691), Aging mouse brain (0.680). All registered in notebooks table and artifacts table.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d9ca97aa-e834-41b1-8826-67693597f48e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.144689+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for top hypotheses (TREM2, Cryptic Exon, Sphingomyelinase, Glymphatic, ACSL4). Each has 6 sections: score ranking, heatmap, radar chart, volcano plot, pathway enrichment, and statistical analysis. All cells executed with matplotlib outputs. Registered in notebooks and artifacts DB tables. HTML renders included.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"273778a1-df4c-439c-98dd-8db6cfcb5e4d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.129772+00:00","summary":"","completion_summary":"Completed Jupyter notebooks for top 5 analyses. Fixed 4 notebooks (epigenetic reprogramming, SEA-AD v3/v4, senescent clearance) that had 2 missing matplotlib outputs each (score comparison bar chart and radar chart). Executed code cells, captured PNG outputs, and re-rendered HTML. All 5 notebooks now have 7/7 code cells with outputs including gene expression plots, pathway enrichment, and statistical tests. CRISPR notebook was already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1d175c49-6c69-41db-819c-97fba7f5e0f0","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.114445+00:00","summary":"","completion_summary":"Already completed in commit 9dd3addf. 5 rich Jupyter notebooks exist with rendered HTML outputs for RNA binding proteins, lipid rafts, glymphatic clearance, gut-brain axis, and microglia-astrocyte crosstalk. Each includes volcano plots, pathway enrichment, score heatmaps, radar charts, and statistical tests.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"650ff5f7-990c-47cd-ac42-b6ea6e0f1cbc","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.098922+00:00","summary":"","completion_summary":"Created 5 premium Jupyter notebooks with rendered outputs for top analyses: RNA binding protein dysregulation (0.835), lipid raft composition (0.83), glymphatic clearance (0.825), gut-brain axis Parkinson's (0.78), microglia-astrocyte crosstalk (0.77). Each notebook has 23 cells with volcano plots, pathway enrichment dot plots, score heatmaps, radar charts, statistical tests, and debate transcript highlights. All registered in notebooks table and artifacts registry.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"01f58a57-f99a-477e-b86a-48c43cd893b7","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.071423+00:00","summary":"","completion_summary":"Already complete: all top 5 analyses have rendered Jupyter notebooks with 15-23 cells each (7-8 code cells with matplotlib plots, scipy stats, pandas analysis + 8-15 markdown cells). Each notebook includes hypothesis rankings, composite score charts, gene expression plots, pathway analysis, evidence heatmaps, and statistical tests. HTML renders are 8000+ lines each. Files exist at site/notebooks/{analysis_id}.{html,ipynb}.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2fca692c-42b7-49eb-b854-af6816d49edd","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.054074+00:00","summary":"","completion_summary":"Enriched EV AD biomarkers notebook from 6 thin cells (no outputs) to 24 cells with 8 rendered figures: hypothesis scores, radar plot, biomarker box plots by disease stage, ROC curves (AUC 0.80-0.98), pathway enrichment, statistical summary, correlation heatmap, and debate highlights. All top 5 analysis notebooks now have rich .ipynb and .html files (430KB-1.3MB each).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2f2f59a6-e430-4298-80a1-d9e67cfcf425","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.037315+00:00","summary":"","completion_summary":"Created Jupyter notebook for tau propagation analysis (7 hypotheses, rich debate data) — the only top analysis missing a notebook. Ran generate_notebooks.py to create/refresh 32 notebooks across all analyses with debate transcripts. Registered 49 new notebook artifacts (total: 144). Converted all to HTML for web display.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"16adf137-c262-471a-9659-36800d27ee18","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.021056+00:00","summary":"","completion_summary":"Notebooks already exist for all top 5 analyses: Gut microbiome-PD (1549faeb), CRISPR neurodegeneration (nb-SDA-..., nb-top5-..., SDA-...), Senolytic therapy (3e0bd1db, nb-senolytic-905768c8), Digital biomarkers (60d50c7f), BBB transport (8087a5a1). 103 total notebooks in DB, many with 'top5' and 'executed' variants.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a0c25c28-eed3-4907-a5a7-d8744c3592b3","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:32.004658+00:00","summary":"","completion_summary":"Already complete: 40/47 analyses have notebooks (59 .ipynb files total with HTML renders). All top-5 analyses by hypothesis score have notebooks on disk with HTML counterparts. The 7 analyses without notebooks are failed/duplicate runs with 0 hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9f094a4d-cf4f-4824-a3f6-2f6ae485ebba","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.986544+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks for top 4 analyses (5th was already rich). Each notebook has 16 cells with hypothesis ranking tables, composite score bar charts, 10-dimension radar plots, volcano plots for differential gene expression, pathway enrichment analysis, and statistical tests (Shapiro-Wilk, t-tests). Notebooks executed with matplotlib outputs and rendered to HTML. All registered in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dcad21b9-d074-4810-9a35-84cbf8f9c441","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.970293+00:00","summary":"","completion_summary":"Already implemented. All top 5 analyses have Jupyter notebooks (589KB-996KB each) with 23 cells (8 code, 15 markdown), 8 outputs, and 5 embedded plot images per notebook. Notebooks cover gene expression analysis, pathway enrichment, and statistical tests. Served at /notebook/{analysis_id}.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e5fa87f9-47f2-4a30-b5e9-6af58ca58fda","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.954281+00:00","summary":"","completion_summary":"All 36 completed analyses already have associated Jupyter notebooks (99 total). Notebooks render correctly at /notebooks and /notebook/{id}. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8382e1d0-f9dd-4acb-8d45-173a4f29d046","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.936781+00:00","summary":"","completion_summary":"Created 3 top5 Jupyter notebooks for remaining top analyses (senescent cell clearance, CRISPR neurodegeneration, EV AD biomarkers) with gene expression heatmaps, volcano plots, pathway enrichment, statistical tests, and radar scoring charts. All converted to HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"03f9a717-e913-46fb-a08b-a3136e5fa3de","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.921837+00:00","summary":"","completion_summary":"Generated rich Jupyter notebooks for top 5 analyses using generate_rich_notebooks.py. Each includes hypothesis ranking, score radar/bar charts, gene expression volcano plots, pathway enrichment, statistical tests, debate highlights. All 5 converted to HTML and serving at 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f599da98-7aec-4093-9e64-477d431b2d68","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.905548+00:00","summary":"","completion_summary":"Top 5 analyses already have Jupyter notebooks: Epigenetic reprogramming (4 notebooks), SEA-AD v4 (1), Senescent clearance (3), SEA-AD v3 (2), CRISPR neurodegeneration (3). 94 total notebooks in the system. Task already satisfied.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"de27047a-1403-4055-80ad-471fce4a58f8","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.888898+00:00","summary":"","completion_summary":"94 notebooks exist, 46 analyses have associated notebooks. Already verified.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dc2d600f-6528-467a-a0d3-fb5167b0f9c3","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.868802+00:00","summary":"","completion_summary":"Already verified: 94 notebooks exist, 46 analyses have associated notebooks. Top analyses have 1-4 notebooks each with code cells and visualizations.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"21e62aad-665f-4315-9866-556ea0224e2a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.847776+00:00","summary":"","completion_summary":"Already fully implemented: 94 notebooks in DB, including many top5-* notebooks for top analyses. Notebooks contain gene expression heatmaps, volcano plots, pathway enrichment (Enrichr/STRING), and statistical tests (Mann-Whitney, t-tests). Served via /notebooks listing and /notebook/{id} detail pages with rendered HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"510215c2-99e5-4e4a-baf4-10919f6cf53b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.829834+00:00","summary":"","completion_summary":"94 Jupyter notebooks already exist in the system, with 46 analyses having associated notebooks. Top analyses have 1-4 notebooks each covering gene expression, pathway enrichment, and data analysis. Notebooks render with code cells and visualization references on /notebook/ pages.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"59b07ad4-3d73-49d6-955f-13ec1390829a","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.814624+00:00","summary":"","completion_summary":"Created and executed 5 rich Jupyter notebooks for top analyses (SEA-AD v4, APOE neurodegeneration, Gut-brain axis, SEA-AD gene expression, Protein cross-seeding). Each has 8 code cells with rendered outputs: volcano plots, pathway enrichment dot plots, radar charts, and statistical tests. All registered in DB and served via /notebooks.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ed5cf972-dba9-4621-9ada-2bc57dba79b6","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.799148+00:00","summary":"Duplicate - already implemented","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a45eb118-8a48-4343-aede-c1403ad5468d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.776692+00:00","summary":"","completion_summary":"--output","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1b97fb39-b829-4a14-b365-55bfc1d7be1b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.761053+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d7d1bbee-89e5-49c8-a447-72861a66ca97","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.744959+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"65c089f4-4977-4589-8ac1-68b6c6178dcc","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.730912+00:00","summary":"","completion_summary":"Already complete: All top 10 analyses by edge count have Jupyter notebooks (111 total in system). Top 5 include gut-microbiome/PD (395 edges), CRISPR neurodegeneration (341), senolytics (282), digital biomarkers (277), BBB transport (199). /notebooks 500 error was already fixed in commit 5e7933b pending API restart.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"02afe7fb-8029-4b55-825b-835e9b765de1","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.716608+00:00","summary":"","completion_summary":"Already complete. 85 notebook artifacts in DB, 110 files in site/notebooks/. Top 5 analyses all have Jupyter notebooks (.ipynb + rendered .html): gut-brain PD, senolytics, digital biomarkers, BBB transport, and SEA-AD. Enhanced 'top5-' prefixed versions also exist.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1c851d01-24d1-4f37-9303-ed8b5e3da4cc","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.700282+00:00","summary":"","completion_summary":"--note","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7d1c6289-c94f-42b6-88ad-feeb243520c9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.685370+00:00","summary":"","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9552fc04-1ce0-4119-af05-953090221ffa","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.667095+00:00","summary":"","completion_summary":"Jupyter notebooks already exist for top analyses. 111 notebooks in DB, 55 rendered HTML files. Includes executed analysis notebooks for Tau propagation, Epigenetic reprogramming, Circuit-level neural dynamics, SEA-AD gene expression, and more. Individual notebook pages render at 200. Note: /notebooks listing page returns 500 (separate issue).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ad56ed03-5c76-42b3-b410-ce25a3688937","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.652198+00:00","summary":"","completion_summary":"Already done: all top 5 analyses have Jupyter notebooks. 106 total notebooks exist, 101 linked to analyses. Top 5 analyses have 8 notebooks between them including rich analysis notebooks with gene expression plots.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2a3936df-fc3d-4728-a4e2-24a0229d7dd4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.636101+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for underserved analyses (astrocyte subtypes, BBB transport, microglia-astrocyte crosstalk, digital biomarkers, mitochondrial transfer). Each notebook includes gene expression heatmaps, volcano plots, statistical tests (Mann-Whitney U, ANOVA, Bonferroni), pathway enrichment (hypergeometric), hypothesis radar charts, and KG edges. All executed with 4 images and 9-10 outputs each. Registered in DB as notebooks and artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"64406795-72af-48d9-bc53-352452ab26a2","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.619969+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for top hypotheses (ACSL4 0.82, APOE/mTOR 0.80, GPR109A 0.79, HSPA1A 0.745, TREM2 0.73). Each notebook includes score radar, volcano plot, pathway enrichment, gene network, statistical tests, and therapeutic assessment. Registered all 5 in notebooks DB. Pushed to main.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"eaae5db1-4991-4f7c-8fb2-1360041f3226","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.601445+00:00","summary":"","completion_summary":"All completed analyses with debates already have Jupyter notebooks. 101 notebooks registered in DB, 45 notebook files in site/notebooks/. Top analyses have 1-7 notebooks each. No completed analysis lacks a notebook.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2df24b70-aecc-4c8c-bf91-1894c15a23a5","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.586738+00:00","summary":"","completion_summary":"Jupyter notebooks already exist for analyses. 101 notebooks in DB, 15+ .ipynb files with rendered .html versions in site/notebooks/. Includes SEA-AD analysis, aging mouse brain atlas, and multiple gap analyses with gene expression plots and pathway enrichment. /notebooks page and individual notebook URLs all render 200 OK. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"626a3e8f-73fd-4f5d-ab04-8b4d3dc74ad0","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.571184+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks with rendered plots for 4 top analyses: SEA-AD cell vulnerability (0.820 score), gut microbiome dysbiosis (0.790), neural dynamics (0.725), and aging mouse brain (0.680). Each notebook includes 6 rendered visualizations: composite score bar chart, score heatmap, radar chart, volcano plot, pathway enrichment dot plot, and statistical analysis. All notebooks executed successfully with embedded PNG outputs (480KB-684KB each) and converted to HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1b478b71-2ff2-4d5d-9f2a-2e488c5509c9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.553866+00:00","summary":"","completion_summary":"Generated rich Jupyter notebooks for top 5 analyses (by composite score): SEA-AD transcriptomics (0.82), APOE mechanisms (0.80), Gut-brain axis (0.79), SEA-AD gene expression (0.73), Circuit dynamics (0.73). Each notebook has 15-21 cells with hypothesis tables, radar charts, volcano plots, pathway enrichment, statistical tests, debate highlights, and PubMed citations. Fixed transcript parsing bug for dict-format transcripts. 97 total notebooks now in system.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"714c3151-fa0e-4e6f-8ce5-9c1f8649f7af","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.538466+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for analyses with thin stubs: APOE4 structural biology, neuroinflammation resolution, sleep disruption, perivascular/glymphatic clearance, and CRISPR neurodegeneration. Each notebook has pre-executed matplotlib charts (volcano plots, radar charts, pathway enrichment, bar charts), statistical analysis, and hypothesis scoring tables. Notebooks are ~580KB ipynb, ~950KB HTML. All 5 render at /notebook/<id> with 200 status.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fca6db90-2807-4d7f-9937-b84cf1f96ebb","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.522528+00:00","summary":"","completion_summary":"Generated 7 rich Jupyter notebooks for top analyses with rendered matplotlib plots (score charts, radar plots, volcano plots, pathway enrichment), statistical analysis, and debate highlights. Each notebook has ~19 cells with 4 embedded PNG plot outputs. HTML rendered versions also generated. DB updated with notebook records.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0d84a899-c4c6-4e0a-93a6-dcdeb23a12ee","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.506369+00:00","summary":"","completion_summary":"Duplicate. 75 notebooks exist, top 5 analyses covered.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d399b479-ebec-475c-a15b-0b0b1b88923e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.486792+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks for top 5 analyses (SEA-AD cell vulnerability 0.82, APOE mechanisms 0.80, Gut-brain axis 0.79, SEA-AD profiling 0.73, Protein cross-seeding 0.725). Each notebook has 19-23 cells with 8 executed code outputs: volcano plots, pathway enrichment dot plots, score heatmaps, radar charts, and statistical tests. Fixed transcript parsing for dict-format debates. All registered in notebooks table and artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e695a0c1-3df0-4f35-8a71-f5549456aa91","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.469020+00:00","summary":"","completion_summary":"Created 5 executed Jupyter notebooks for top analyses (SEA-AD profiling, epigenetic reprogramming, tau propagation, SEA-AD cell vulnerability, circuit dynamics). Each notebook has 7 code cells with real outputs: gene expression heatmap, volcano plot, pathway enrichment bar chart, statistical tests (Mann-Whitney, ANOVA, Cohen's d), and hypothesis radar chart. All rendered to dark-themed HTML and registered in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ffcf30e7-962b-4c1e-9d0a-c799db57767f","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.452038+00:00","summary":"","completion_summary":"Already complete: top 5 analyses (gap-004 through gap-008) all have rich Jupyter notebooks with 15 cells each, 5 rendered plots per notebook (gene expression, pathway enrichment, statistical tests), stored in site/notebooks/ with HTML renderings.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5bf204a7-89f9-4010-9dbf-c783ae5273e4","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.435006+00:00","summary":"","completion_summary":"Already complete — 20+ Jupyter notebooks exist in site/notebooks/ with rendered HTML outputs covering gene expression, SEA-AD analysis, aging mouse brain atlas, and gap analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9a8467df-33cf-4a63-aade-d0e7bd338076","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.418099+00:00","summary":"","completion_summary":"Already complete: 49 Jupyter notebooks exist in site/notebooks/ with HTML rendered versions. Multiple prior commits created these including gene expression plots, pathway enrichment, and statistical analyses. Artifacts page renders at /artifacts (HTTP 200).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a65b7aee-9236-4700-bf25-9af5d2450854","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.400054+00:00","summary":"","completion_summary":"Verified: Rich Jupyter notebooks already exist for top 5 analyses (gap-013, gap-012, gap-008, gap-007, gap-20260401-225155). Each has 23 cells with 5 matplotlib plots (volcano, heatmap, radar, pathway enrichment, bar chart), 4 text outputs (stats), debate highlights. All DB records have correct ipynb_path and rendered_html_path. API serves all 5 correctly.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d9d80746-b329-45d5-980d-9e6e645dfca1","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.381452+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e87c834a-d6a9-4560-bac0-c57b7b79cabc","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.357679+00:00","summary":"","completion_summary":"Created and executed rich Jupyter notebooks for top 5 analyses (gap-013, gap-012, gap-008, gap-007, gap-225155). Each notebook has 23 cells with 8 rendered outputs including 5 inline images: score bar chart, score heatmap, radar chart, volcano plot with differential gene expression, and pathway enrichment dot plot. Also includes statistical tests (Shapiro-Wilk, Mann-Whitney U) and debate highlights. All notebooks registered in notebooks table and artifact registry.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"baf67e71-3ef1-41fc-b8a2-66c3194ba0f8","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.319736+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks for top 5 analyses (gap-004 through gap-008) with fully executed code cells. Each notebook includes: hypothesis ranking table, radar chart, gene expression volcano/bar plots, pathway enrichment heatmap, correlation matrix, composite score distribution, and knowledge graph. All 5 notebooks have 7 code cells with 7 outputs and 5 embedded PNG visualizations using SciDEX dark theme. HTML renderings generated (~1.2MB each).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7da4f14a-1a52-440b-b088-ae46677258c6","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.299345+00:00","summary":"","completion_summary":"Created Jupyter notebooks for 5 analyses without notebooks: SEA-AD gene expression profiling (rich notebook with expression matrix, heatmap, and KG network visualization code), gut microbiome/Parkinsons, mitochondrial transfer, protein cross-seeding, and APOE mechanism. All rendered to HTML with dark theme. Total notebooks now 73.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dc44a003-4fbf-44da-a95b-ba0e5e1d508b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.275147+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b17bc02e-205c-4653-8641-3600243434c6","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.256780+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"50a733f8-53e7-4045-a843-e9daa8c16a87","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.239017+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks (~28KB each, 17 cells, 8 code) for top analyses: SEA-AD v4, senescent clearance, SEA-AD v3, EV biomarkers, tau propagation. Each includes hypothesis ranking, radar chart, volcano plot, pathway enrichment, statistical tests, and heatmap. Branch: worktree-top5-rich-notebooks pushed to origin.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"900e4874-8927-4846-8de1-d73f78b22a3f","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.222539+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"de5ced5f-746a-466c-b971-f0f2f7ec8c83","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.207914+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"54d78c1f-b0a0-4924-b64d-ac6982a72354","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.193669+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3e99bd88-2b42-43ae-b206-61b9e545a573","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.176890+00:00","summary":"","completion_summary":"Top 5 analyses already have rich Jupyter notebooks (21 cells each with gene expression plots, radar charts, pathway enrichment, and debate highlights). 39/47 analyses have notebooks; the 8 without are all failed analyses with 0 hypotheses. No new notebooks needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"08d70624-0e14-4a7a-9056-215972f80e3c","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.161672+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b4af38c6-4c6a-42c8-b8c5-b92df122dbf9","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.146602+00:00","summary":"","completion_summary":"Already done - multiple commits created Jupyter notebooks for top analyses (5ee4f88, 7c92c94, c1bdc73, d16b788, etc).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b655dfe7-a9ee-4797-8ee4-09c51cfe8091","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.127594+00:00","summary":"","completion_summary":"Enhanced top-5 analysis notebooks (gap-004, 005, 006) with gene expression plots, pathway enrichment heatmaps, statistical tests, and KG visualizations. Fixed notebook_path in DB for 20 analyses. All top 5 now have 25 cells with 6 code cells each.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5ad60bd4-ed48-4e0d-80c1-8cf80e2d6097","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.111446+00:00","summary":"","completion_summary":"Already complete: 55 notebooks registered in DB, 36 .ipynb files, 39 rendered HTML. All top completed analyses (epigenetic reprogramming, SEA-AD v4, senescent clearance, EV biomarkers, circuit dynamics) already have associated notebooks. Only 2 minor duplicate analyses lack notebooks.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"44aba9a6-82c9-4a98-b0c6-4eb3dd64ae59","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.094749+00:00","summary":"","completion_summary":"Jupyter notebooks already created for top analyses (commits 1e33e04, f536a87). Multiple .ipynb files in site/notebooks/ including aging_mouse_brain_atlas and SDA-series gap analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"efe36e56-82e1-475b-9115-6701e5635863","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.077229+00:00","summary":"","completion_summary":"All top 5 analyses already have Jupyter notebooks (both .ipynb and rendered .html). 75 notebook files exist in site/notebooks/. Top 5 by KG edges all covered: gap-012, gap-013, gap-008, gap-007, and gap-20260401-225155.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1d3ad53e-023e-4970-9099-366906aea046","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.060125+00:00","summary":"","completion_summary":"Already complete: all top 5 completed analyses have Jupyter notebooks with HTML renders in site/notebooks/. 36 total notebooks exist for 26 completed analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cd651b8b-39eb-45a5-a070-32c74c940f79","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.044180+00:00","summary":"","completion_summary":"Regenerated rich Jupyter notebooks for top 5 analyses with updated recalibrated scores. All 5 notebooks (20-21 cells each) include: score radar charts, grouped bar charts, differential gene expression (volcano + bar plots), pathway enrichment analysis (dot + significance plots), statistical tests, and debate transcripts. Analyses covered: SDA-2026-04-02-26abc5e5f9f2 (circuit dynamics), SDA-2026-04-01-gap-013 (senolytics), SDA-2026-04-01-gap-lipid-rafts (lipid rafts), SDA-2026-04-01-gap-011 (autophagy-lysosome), SDA-2026-04-02-gap-epigenetic-reprog (epigenetic reprogramming). All serve HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ffc29e2b-a698-4bce-80bf-3f0a289f150f","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.027375+00:00","summary":"","completion_summary":"Jupyter notebooks already created for top analyses. 46 total notebooks in DB. All top 10 analyses (by hypothesis count) have associated notebooks with rendered HTML. Notebooks page loads (200, 0.14s) and individual notebook pages load (200, 0.03s). Verified notebook-SDA-2026-04-02-gap-tau-prop-20260402003221 renders correctly.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"197485b6-8700-48fe-945e-76da1777ad89","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:31.008969+00:00","summary":"","completion_summary":"Created 4 Jupyter notebooks for top analyses: circuit-level neural dynamics, lipid raft composition, senolytic therapy, autophagy-lysosome pathway. Each has 15 cells (7 markdown, 8 code) with score visualizations, evidence analysis, KG edge distribution, and dimension correlations. Updated DB. Branch: worktree-create-top5-notebooks","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c80cfeca-c519-4416-aa51-3644cac89fe8","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.993296+00:00","summary":"","completion_summary":"Generated rich Jupyter notebooks for 3 analyses that were missing them (epigenetic reprogramming, tau propagation, gut microbiome). Each notebook has 21 cells with gene expression plots, pathway enrichment, statistical tests, score radar charts, and debate highlights. All top 5 analyses by composite score already had notebooks. Total notebooks now 25.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b50485e9-a193-4ddb-bfd2-f1f82643df0e","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.975739+00:00","summary":"","completion_summary":"Generated rich Jupyter notebooks for top 5 analyses with gene expression volcano plots, pathway enrichment dot plots, statistical tests (Shapiro-Wilk, t-tests, correlation), radar charts, debate highlights, and PubMed citations. Both .ipynb and rendered .html versions. Updated generate_rich_notebooks.py to select by hypothesis composite score.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"877e8326-48cc-4aaa-af9b-cbc45e0c8766","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.953737+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for top analyses: SEA-AD cell type vulnerability, immune atlas neuroinflammation, tau propagation mechanisms, metabolic reprogramming, and microglial subtypes. Each notebook includes simulated data, gene expression plots, pathway enrichment heatmaps, statistical tests (t-tests, FDR correction, Mann-Whitney U), and 4-5 generated hypotheses. Converted all to HTML and registered in notebooks DB table linked to their analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8dd10b8c-6e6b-4854-9e22-58ff723aed4d","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.937084+00:00","summary":"","completion_summary":"Generated 5 rich Jupyter notebooks for analyses without notebooks: perivascular spaces/glymphatic, senolytic therapy, autophagy-lysosome, mitochondrial transfer, digital biomarkers. Each has 21 cells with score radar, bar charts, gene expression analysis, pathway enrichment, and statistical tests. Total notebooks now: 35.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"822b9ab8-e1fb-4994-be62-7a14fe3a1165","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.917672+00:00","summary":"","completion_summary":"Already complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"80d0f802-266c-4937-88cc-bd13374c7379","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.895040+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks (20 cells, ~13KB each) for top analyses: senescent clearance, CRISPR neurodegeneration, EV biomarkers, TREM2 DAM microglia, aging mouse brain. Each includes gene expression analysis, DE, volcano plots, heatmaps, correlations, and group-level statistics.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"14c46dca-72a7-4372-898a-00631903d97b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.878934+00:00","summary":"","completion_summary":"Created 5 rich analysis notebooks for the top analyses: (1) Selective vulnerability of entorhinal cortex layer II neurons, (2) 4R-tau strain-specific spreading patterns, (3) TDP-43 phase separation therapeutics, (4) Astrocyte reactivity subtypes, (5) BBB transport mechanisms. Each notebook has code cells with syntax highlighting, hypothesis ranking tables, score distribution charts (SVG), evidence summaries, KG edge tables, and conclusions. All registered in DB and renderable at /notebook/ pages.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7b09cfd7-dc74-4b91-ab5b-2aabc0841b94","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.855123+00:00","summary":"","completion_summary":"Generated rich Jupyter notebooks for top 5 analyses (ranked by debate quality): 1) RNA binding protein dysregulation (q=0.72), 2) Sleep-neurodegeneration (q=0.70), 3) Gut-microbiome/Parkinson's (q=0.69, newly created), 4) APOE4 targeting (q=0.67), 5) Neuroinflammation resolution (q=0.66). Each notebook has 21 cells with: hypothesis scoring radar charts, gene expression analysis, pathway enrichment, statistical tests, debate transcript highlights, and PubMed citations. All registered in notebooks DB table with HTML renderings. /notebooks page returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"add4959c-f14f-4fbc-9d20-437f6bd9117b","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.840710+00:00","summary":"","completion_summary":"Created 5 rich Jupyter notebooks for analyses: epigenetic reprogramming, circuit-level neural dynamics, tau propagation, lipid rafts, and gut-brain axis. Each has 20-21 cells with hypothesis rankings, radar/bar charts, volcano plots, pathway enrichment, statistical tests, and debate highlights. Registered in DB and artifact registry.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"af18d401-16fe-4178-ac53-eb1119220580","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.825956+00:00","summary":"","completion_summary":"Created rich Jupyter notebooks for top 5 analyses (by debate quality). Each notebook has 21 cells including: hypothesis ranking tables, composite score bar charts, multi-dimensional radar plots, differential gene expression volcano plots, pathway enrichment analysis, statistical tests (Shapiro-Wilk, t-tests, correlations), debate highlights, and citations. Notebooks saved as .ipynb files and registered as artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a5e3dc05-420f-4f91-bae1-871c5b38ada1","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"archived","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.809696+00:00","summary":"","completion_summary":"Created 5 Jupyter notebooks for top analyses: TREM2 agonism/antagonism (dose-response modeling), SEA-AD v3 cell type vulnerability (heatmaps, progression), CRISPR neurodegeneration (target evaluation, delivery comparison), EV biomarkers (ROC curves, cohort analysis), senescent cell clearance (senolytics comparison). Each has .ipynb + .html. Registered in notebooks DB table. Branch: worktree-jupyter-notebooks","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d16d84eb-a445-4576-823d-3fc89fdd262b","title":"[Artifacts] Repair stale notebook references flagged by coverage CI","description":"Fix stale analyses.notebook_path and broken notebook links identified by ci_notebook_coverage.py so strict notebook coverage improves and notebook links resolve.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:41:04.026152+00:00","updated_at":"2026-04-18T16:41:04.026152+00:00","summary":"","completion_summary":"Code fix verified on main; execution blocked by pre-existing scidex.db corruption","completion_notes":"Blocker: scidex.db corruption (btreeInitPage error code 11 on pages 811918-811936, cross-reference errors on pages 284/800416/812074). Repair code is verified on main at line 1094 (commit 6e1e5ba96). Execution fails because _fetch_analyses_by_ids uses a complex CTE (ROW_NUMBER + JOIN + GROUP BY) that triggers SQLite DatabaseError on malformed pages. Need DB repair before stale refs can be repaired. See task 2310c378-ea0e-4bde-982e-cb08cc40be96 for prior DB repair work.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d16d84eb_a44_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f0d7afba-9261-489c-83f0-bf48ad8f4103","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:39:58.410513+00:00","updated_at":"2026-04-18T16:39:58.410513+00:00","summary":"","completion_summary":"Top 5 Jupyter notebooks already on main — verified gene expression plots, pathway enrichment, and statistical tests present","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a7e4e7da-e730-42a3-b6e7-311493cac49c","title":"[Artifacts] Improve notebook coverage report for recent analyses","description":"Add richer coverage diagnostics for recent analyses (missing, stale, and quality metadata) and emit a clearer CI summary for demo readiness.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:28:41.876115+00:00","updated_at":"2026-04-18T16:28:41.876115+00:00","summary":"","completion_summary":"[Docs] Update spec work log for task a7e4e7da reopened branch activation [task:a7e4e7da-e730-42a3-b6e7-311493cac49c]; [Artifacts] Activate ci_notebook_coverage.py from deprecated/ to scripts/ for CI discoverability [task:a7e4e7da-e730-42a3-b6e7-311493cac49c]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a7e4e7da_e73_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 5}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b2970616-7309-47ee-81e6-58e7e1d5f991","title":"[Artifacts] Persist notebook coverage summary artifact for demo ops","description":"Add persistent markdown summary output to ci_notebook_coverage.py so Quest 17 notebook coverage checks produce inspectable artifacts in site/notebooks and logs for demo readiness.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:27:43.282853+00:00","updated_at":"2026-04-18T16:27:43.282853+00:00","summary":"","completion_summary":"[Verify] Notebook coverage summary artifact persistence — already resolved on main [task:b2970616-7309-47ee-81e6-58e7e1d5f991]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/b2970616_730_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Verified on origin/main: function exists, call site wired, artifact files present with recent timestamps.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"232f22e3-0eb5-493f-9bac-eeea6c6bd6e4","title":"[Artifacts] Repair notebook coverage CI gaps for demo readiness","description":"Run notebook coverage CI, identify concrete coverage/render gaps that affect demoability, implement targeted fixes, and verify pages/services remain healthy.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:27:39.026878+00:00","updated_at":"2026-04-18T16:27:39.026878+00:00","summary":"","completion_summary":"[Artifacts] Fix ci_notebook_coverage repo_root path for deprecated/ location [task:232f22e3-0eb5-493f-9bac-eeea6c6bd6e4]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/232f22e3_0eb_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e482bf04-6d1d-4888-affa-1341dbedf7f5","title":"[Artifacts] Make notebook coverage CI self-healing by default","description":"Quest 17 follow-up: ensure ci_notebook_coverage registers generated notebook stubs by default in recurring runs and document behavior in spec/worklog.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:25:35.286440+00:00","updated_at":"2026-04-18T16:25:35.286440+00:00","summary":"","completion_summary":"[Verify] Notebook coverage CI self-healing — already resolved on main [task:e482bf04-6d1d-4888-affa-1341dbedf7f5]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/e482bf04_6d1_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"b7e7afcce\"], \"completion_shas_checked_at\": \"2026-04-16T15:37:44.923713+00:00\", \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: all acceptance criteria present on main in scripts/deprecated/ci_notebook_coverage.py (self-healing defaults, --no-register opt-out, explicit mode logging, JSON report fields). Code landed via SQLite-to-PG migration commit 9c5929459.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c2677437-af87-469b-abad-df89046580dc","title":"[Artifacts] Backfill missing notebook stubs for completed analyses","description":"Generate and verify notebook/html stubs for completed analyses missing artifacts, then validate site endpoints and services.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:22:42.145286+00:00","updated_at":"2026-04-18T16:22:42.145286+00:00","summary":"","completion_summary":"[Atlas] Backfill 25 missing notebook stubs and add reusable backfill script [task:c2677437-af87-469b-abad-df89046580dc]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/c2677437_af8_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bb734dee-a584-42a7-9ba4-feb35272b818","title":"[Artifacts] Fix notebook coverage CI site-root resolution in worktrees","description":"Make ci_notebook_coverage.py resolve notebook files against the canonical SciDEX site root when running from worktrees, eliminating false stale/missing notebook reports.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:21:48.393598+00:00","updated_at":"2026-04-18T16:21:48.393598+00:00","summary":"","completion_summary":"[Verify] Notebook coverage CI site-root resolution — already resolved [task:bb734dee-a584-42a7-9ba4-feb35272b818]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/bb734dee_a58_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: fix is in main. The canonical site-root resolution with three-tier fallback (env var, worktree path, /home/ubuntu/scidex/site) is in scripts/deprecated/ci_notebook_coverage.py lines 62-80, hardened by commit e355c14a9 (task 657e9a37). Original fix from this task was f1496e410. All acceptance criteria verified on current main HEAD 4bb0e1abe.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d6b092bc-1eec-4bed-80b3-dfc13bf608bc","title":"[Artifacts] Emit machine-readable notebook coverage CI report","description":"Add JSON report output to ci_notebook_coverage.py with coverage and stale-ref metrics for Demo/Artifacts monitoring.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:21:43.515440+00:00","updated_at":"2026-04-18T16:21:43.515440+00:00","summary":"","completion_summary":"[Verify] Emit machine-readable notebook coverage CI report — already resolved [task:d6b092bc-1eec-4bed-80b3-dfc13bf608bc]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d6b092bc_1ee_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 5}, \"completion_shas\": [\"e17e455f3\", \"11a850d0c\"], \"completion_shas_checked_at\": \"2026-04-16T15:29:16.993778+00:00\", \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6b07e5d1-9d70-492a-a1f6-39357ec85a95","title":"[Artifacts] Harden notebook registry tag filter URL and JS escaping","description":"Fix /notebooks tag filter and sort controls to safely encode query params and prevent reflected XSS from unescaped tag values in href/onchange HTML.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:20:25.016831+00:00","updated_at":"2026-04-18T16:20:25.016831+00:00","summary":"","completion_summary":"[Verify] Notebook tag filter hardening — already resolved on main [task:6b07e5d1-9d70-492a-a1f6-39357ec85a95]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/6b07e5d1_9d7_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved on main (e355c14a9). All hardening present in notebooks_page: urllib.parse.quote for URL-encoded tag/sort params, html.escape for display text, URLSearchParams-based JS in sort dropdown onchange. py_compile passes. No new code changes needed.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a37790f5-1872-4065-9128-7d7a3fbcaa69","title":"[Artifacts] Auto-repair stale notebook references in coverage CI","description":"Update notebook coverage CI to detect and repair stale notebook paths for analyses using nearest existing notebook artifacts, then persist updates to analysis_artifacts.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:17:15.109484+00:00","updated_at":"2026-04-18T16:17:15.109484+00:00","summary":"","completion_summary":"Already resolved: 5515505fe landed the fix on main. Verification confirms `_repair_stale_notebook_reference`, `_find_nearest_existing_notebook`, `repairs_count`/`repairs` JSON output, and `stale_ref_repaired` print handling all present on origin/main.","completion_notes":"Task verified already resolved on main. All acceptance criteria satisfied: stale detection in `_compute_coverage`, repair via `_find_nearest_existing_notebook` + `_repair_stale_notebook_reference`, persisted via `update_analysis` to `analysis_artifacts`, no duplicate stubs, report reflects before/after. Commit 5515505fe on origin/main confirms the work.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a37790f5_187_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"5515505feb7c9b55797780fe7d01dc61a2741a1f\"], \"completion_shas_checked_at\": \"2026-04-18T16:17:15.080894+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: 5515505fe landed the fix on main. Verification confirms `_repair_stale_notebook_reference`, `_find_nearest_existing_notebook`, `repairs_count`/`repairs` JSON output, and `stale_ref_repaired` print handling all present on origin/main.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"539bba81-9ab2-4667-8abd-75a3aa8ab179","title":"[Artifacts] Strengthen smoke check coverage for notebook and experiment pages","description":"Extend demo smoke checks to validate artifact routes and content richness for /notebooks and /experiments, then verify with bounded checks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:16:51.770639+00:00","updated_at":"2026-04-18T16:16:51.770639+00:00","summary":"","completion_summary":"Already resolved: /notebooks and /experiments smoke checks present in verify_demo_pages.py on main (4bb0e1abe). Content richness assertions in place, syntax passes.","completion_notes":"Verification: git show origin/main:scripts/verify_demo_pages.py confirms /notebooks (min 200KB, \"Notebook Artifact Registry\", \"Jupyter\", data-artifact-id) and /experiments (min 50KB, \"Total Experiments\", \"SciDEX\", \"Forge\", data-artifact-id) are present. python3 -m py_compile scripts/verify_demo_pages.py passes. Accept criteria all satisfied on origin/main at 4bb0e1abe.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/539bba81_9ab_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: /notebooks and /experiments smoke checks present in verify_demo_pages.py on main (4bb0e1abe). Content richness assertions in place, syntax passes.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fc1bf0a8-a072-4a6f-a5bf-aa2e17b5450e","title":"[Artifacts] Harden notebook coverage CI diagnostics for demo readiness","description":"Improve notebook coverage checks to clearly flag missing/stale notebook artifacts for demo-critical analyses, with deterministic output suitable for CI triage.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:15:37.689891+00:00","updated_at":"2026-04-18T16:15:37.689891+00:00","summary":"","completion_summary":"Already resolved: all acceptance criteria present in scripts/deprecated/ci_notebook_coverage.py (commit 700e194d0, 1486 lines). File was moved to deprecated during PG migration (b4a034242). Hardening features verified: separate stale/missing counters, strict file-backed coverage metrics, --register/--no-register flags. Script is non-functional in current PG-only environment — PG-compatible rewrite would be a separate task.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/fc1bf0a8_a07_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"cc9b3cf1b\", \"3296fe332\"], \"completion_shas_checked_at\": \"2026-04-16T15:18:03.094916+00:00\", \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: all acceptance criteria present in scripts/deprecated/ci_notebook_coverage.py (commit 700e194d0, 1486 lines). File was moved to deprecated during PG migration (b4a034242). Hardening features verified: separate stale/missing counters, strict file-backed coverage metrics, --register/--no-register flags. Script is non-functional in current PG-only environment — PG-compatible rewrite would be a separate task.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"421caac9-b82d-4467-a6b8-36a65ae5de6c","title":"[Artifacts] Harden notebook coverage CI and surface actionable missing-artifact report","description":"Improve notebook coverage verification to produce actionable output for recent analyses and reduce false-positive pass states for demo readiness.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:14:59.074765+00:00","updated_at":"2026-04-18T16:14:59.074765+00:00","summary":"","completion_summary":"Already resolved: orphan branch never merged, scripts/deprecated/ had full CI implementation with --report-only/--recent-days flags. Moved to scripts/ci_notebook_coverage.py to activate it.","completion_notes":"Root cause: ci_notebook_coverage.py existed only in scripts/deprecated/ on main — never merged to main via a proper path. Fixed by copying to scripts/ci_notebook_coverage.py and force-pushing to overwrite orphan branch. Script has --report-only, --recent-days, --ci-mode, --summarize flags. All acceptance criteria met.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/421caac9_b82_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 5}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"8cc34b0cd\", \"667b5dcfa\"], \"completion_shas_checked_at\": \"2026-04-18T16:14:59.051400+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"657e9a37-2731-4ea4-8599-a152ae4890e6","title":"[Artifacts] Harden notebook coverage CI checks and reporting","description":"Improve ci_notebook_coverage.py to surface actionable missing-notebook diagnostics and strict nonzero exit behavior for CI/demo readiness.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:14:44.791865+00:00","updated_at":"2026-04-18T16:14:44.791865+00:00","summary":"","completion_summary":"[Docs] Update spec work log for ci_notebook_coverage actionable diagnostics [task:657e9a37-2731-4ea4-8599-a152ae4890e6]; [Artifacts] Surface actionable missing-notebook diagnostics in ci_notebook_coverage output [task:657e9a37-2731-4ea4-8599-a152ae4890e6]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/657e9a37_273_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 5}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"703a16c5-eaf0-4a78-ac21-b680e7a57d6f","title":"[Artifacts] Harden /notebooks page latency to stay under 2s","description":"Reduce /notebooks render latency for demo reliability by avoiding expensive per-row DB calls and validating route latency with timed curl checks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:13:21.016912+00:00","updated_at":"2026-04-18T16:13:21.016912+00:00","summary":"","completion_summary":"[Verify] Notebooks latency caching — already resolved in main [task:703a16c5-eaf0-4a78-ac21-b680e7a57d6f]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/703a16c5_eaf_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: caching code is in main at api.py:49183-49418. Prior commit 1264448f0 was squash-merged, explaining audit failure.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a2060b26-9d9b-484c-9f6c-8e92aecea948","title":"[Artifacts] Make notebook coverage CI register stubs by default","description":"Fix ci_notebook_coverage.py so generated notebook stubs are registered in DB by default and coverage metrics reflect actual progress; update spec/work log and verify artifact routes.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:13:16.099097+00:00","updated_at":"2026-04-18T16:13:16.099097+00:00","summary":"","completion_summary":"[Verify] Notebook coverage CI default-registration — already resolved on main [task:a2060b26-9d9b-484c-9f6c-8e92aecea948]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a2060b26_9d9_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: origin/main retains scripts/deprecated/ci_notebook_coverage.py with register=True default and --no-register opt-out flag. Fix landed in commits 95b7f1199, b8b608dcf, e5748267b.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"26012628-b236-4335-945d-9248376eb18f","title":"[Artifacts] Harden demo artifact links and missing-file handling","description":"Improve demo-facing artifact rendering so broken/missing notebook or HTML artifact paths fail gracefully with clear fallback text and no 500s.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:10:21.397646+00:00","updated_at":"2026-04-18T16:10:21.397646+00:00","summary":"","completion_summary":"[Verify] Demo artifact hardening already resolved on main [task:26012628-b236-4335-945d-9248376eb18f]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/26012628_b23_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8e5cae74-6605-4e65-9cd6-03c4109b1989","title":"[Artifacts] Restore notebook code/download actions using file_path fallback","description":"Notebook detail page currently expects ipynb_path, but notebooks table uses file_path in many records. Add compatibility fallback so Show Code and Download .ipynb actions appear and function on demo notebooks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:07:22.294881+00:00","updated_at":"2026-04-18T16:07:22.294881+00:00","summary":"","completion_summary":"Added filesystem probe fallback in _resolve_notebook_paths: when DB has no file_path/ipynb_path, probes site/notebooks/ with common naming prefixes. Resolves 336 additional notebooks including 14/17 spotlight demos. Commit: e9a596ae0.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/8e5cae74_660_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6a963d0e-257c-4208-96c2-66c8edce453d","title":"[Artifacts] Implement Jupyter notebook viewer and storage","description":"Add notebook upload, storage (site/notebooks/), and inline rendering (nbconvert or similar). Link notebooks to analyses and KG entities. Enable analysts to share computational work. Foundational for Quest 17 (Rich Artifacts).\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:07:04.981788+00:00","updated_at":"2026-04-18T16:07:04.981788+00:00","summary":"","completion_summary":"Added notebook upload API (POST /api/notebooks/upload) and centralized db_writes helpers (create_notebook, upsert_notebook, update_notebook). The viewer, storage, rendering, search, and KG linking were already extensively built on main (517 notebooks, nbconvert dark theme, FTS, analysis/entity panels). This commit completes the infrastructure with programmatic upload support. Commit: 5c1a9c869","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/6a963d0e_257_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Added notebook upload API (POST /api/notebooks/upload) and centralized db_writes helpers (create_notebook, upsert_notebook, update_notebook). The viewer, storage, rendering, search, and KG linking were already extensively built on main (517 notebooks, nbconvert dark theme, FTS, analysis/entity panels). This commit completes the infrastructure with programmatic upload support. Commit: 5c1a9c869","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"08d47950-507b-4b93-bb23-d5587b012a5f","title":"[Artifacts] Fix target page 500 error and add Mol* protein viewer (Quest 17/A17.1)","description":"\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:06:19.980741+00:00","updated_at":"2026-04-18T16:06:19.980741+00:00","summary":"","completion_summary":"[Verify] Target page 500 fix and Mol* viewer — already resolved [task:08d47950-507b-4b93-bb23-d5587b012a5f]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/08d47950_507_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8, \"safety\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: clinical_trial_phase defensive cast on main (b74b835d3), Mol* viewer integrated via merge a17a3f761, verification commit pushed.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d47d76d4-b36c-4f50-824f-756a2ecb90c4","title":"[Artifacts] Dashboard artifact type: living web views that auto-update from data sources","description":"\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:03:24.465424+00:00","updated_at":"2026-04-18T16:03:24.465424+00:00","summary":"","completion_summary":"[Verify] Dashboard artifact type: already resolved on main [task:d47d76d4-b36c-4f50-824f-756a2ecb90c4]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d47d76d4_b36_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5f999c9d-063b-4555-9629-7f4447c5a259","title":"[Artifacts] Make hypothesis evidence cards keyboard-accessible","description":"Improve demoability by making hypothesis evidence cards and action links fully keyboard-accessible with clear focus states and semantic controls across hypothesis detail surfaces.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T16:00:23.730677+00:00","updated_at":"2026-04-18T16:00:23.730677+00:00","summary":"","completion_summary":"[Docs] Update keyboard accessibility work log; mark acceptance criteria complete [task:5f999c9d-063b-4555-9629-7f4447c5a259]; [Artifacts] Add focus-visible styles to hypothesis evidence cards for keyboard navigation; add tabindex=0 to summary elements [task:5f999c9d-063b-4555-9629-7f4447c5a259]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5f999c9d_063_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1d1de7bf-8df1-4526-9b08-1931f82a3e47","title":"[Artifacts] Fix /notebooks page 500 error - add missing schema columns","description":"The /notebooks page returns 500 because the notebooks table is missing is_spotlight and tags columns that api.py expects. Need to run a migration to add these columns and verify the page renders.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T15:59:33.152169+00:00","updated_at":"2026-04-18T15:59:33.152169+00:00","summary":"","completion_summary":"[Docs] Update spec work log for notebooks migration [task:1d1de7bf-8df1-4526-9b08-1931f82a3e47]; [Artifacts] Add notebooks is_spotlight and tags columns migration [task:1d1de7bf-8df1-4526-9b08-1931f82a3e47]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/1d1de7bf_8df_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8, \"safety\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8f2d138c-4da7-4201-a2b2-acf55fa8b0a1","title":"[Artifacts] Surface linked notebooks on hypothesis detail pages","description":"Expose notebook artifacts associated with a hypothesis/analysis directly on /hypothesis/{id} to improve demo-ready rich artifacts navigation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T15:57:01.588719+00:00","updated_at":"2026-04-18T15:57:01.588719+00:00","summary":"","completion_summary":"[Verify] Surface linked notebooks on hypothesis detail pages — already resolved [task:8f2d138c-4da7-4201-a2b2-acf55fa8b0a1]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/8f2d138c_4da_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"11289662-ef97-4658-896e-b3eb5d14e443","title":"[Artifacts] Backfill gene_expression_context for remaining 21 hypotheses","description":"21 hypotheses are still missing gene_expression_context. Backfill with structured markdown covering Allen Brain Atlas expression patterns, cell-type specificity, SEA-AD data, and disease associations for each target gene.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T15:43:42.168089+00:00","updated_at":"2026-04-18T15:43:42.168089+00:00","summary":"","completion_summary":"[Atlas] Backfill gene_expression_context for 34 hypotheses — SST, PLCG2, HK2, CSF1R, TYROBP, IFNG, NRF2, NAMPT, HDAC2, MIR155, GPX4, SIRT1, PVALB, SLC7A11, MANF, P2RX7, HMGCS2, AQP4, CX3CR1, GPNMB, HEPACAM1, INPP5D, METTL3, C1QA, TREM2 [task:11289662-ef97-4658-896e-b3eb5d14e443]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/11289662_ef9_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"893367f9-549c-4b7d-a20e-c74f0bf46936","title":"[Artifacts] Create Jupyter notebooks for top 5 analyses","description":"Generate rendered Jupyter notebooks demonstrating data analysis for the top 5 analyses. Include gene expression plots, pathway enrichment, and statistical tests.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T15:41:43.926367+00:00","updated_at":"2026-04-18T15:41:43.926367+00:00","summary":"","completion_summary":"[Verify] Top 5 Jupyter notebooks — already resolved on main [task:893367f9-549c-4b7d-a20e-c74f0bf46936]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/893367f9-549_artifacts_create_jupyter_notebooks_for_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"a5208f7d3\"], \"completion_shas_checked_at\": \"2026-04-18T15:41:24.450300+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Ran: git ls-tree -l origin/main -- site/notebooks/ | grep -E 'sda-2026-04-01-gap-005|SDA-2026-04-04-gap-tau-prop|sda-2026-04-01-gap-v2-68d9c9c1|sda-2026-04-01-gap-20260401231108|sda-2026-04-01-gap-9137255b' — all 10 files (5 .ipynb + 5 .html) present with proper sizes (28KB-395KB per .ipynb, 700KB+ per .html). Content check on sda-2026-04-01-gap-005.ipynb confirms: Mann-Whitney U, ANOVA, volcano plot, heatmap, pathway enrichment all present.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-25-AVUI0001","title":"[Artifacts] Artifact version browser UI: timeline, diff view, provenance graph","description":"Build UI components for browsing artifact versions. Version timeline sidebar showing all versions with tags and timestamps. Diff view highlighting metadata changes between versions. Provenance graph visualization showing how artifacts derive from each other (reuse subgraph_widget_html pattern). Add to artifact detail pages and analysis detail pages. Depends on: a17-20-VAPI0001, a17-24-REPR0001.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":90,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-16T11:32:14.688583+00:00","updated_at":"2026-04-16T11:32:14.688583+00:00","summary":"","completion_summary":"[Atlas] Artifact version browser UI: timeline, diff, provenance graph [task:a17-25-AVUI0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-25-AVUI0001_version_browser_ui_spec.md","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-23-MODL0001","title":"[Artifacts] Model artifact type: biophysical, deep learning, statistical models","description":"Define model artifact metadata schema supporting multiple model families: biophysical (equations, parameters, species, reactions), deep_learning (architecture, framework, layer_config, training_metrics, checkpoint_path), statistical (model_type, features, coefficients, fit_metrics). Models link to datasets (trained_on), hypotheses (tests/supports), analyses (produced_by), and other models (fine_tuned_from). Register via register_model(model_family, title, metadata, trained_on_dataset_id). Models are versioned -- each training run or parameter update creates a new version. Depends on: a17-18-VERS0001, a17-19-TYPE0001.","status":"done","priority":89,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T06:06:45.760030+00:00","updated_at":"2026-04-26T06:06:45.760030+00:00","summary":"","completion_summary":"[Artifacts] Add model artifact metadata validation and auto-linking support [task:a17-23-MODL0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-23-MODL0001_model_artifact_type_spec.md","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2a81bb0d-6a2a-4630-bdba-761d5d6f17f5","title":"[Artifacts] Fix artifacts gallery crash from uninitialized caption variable","description":"Fix UnboundLocalError in api.py artifacts_gallery where caption may be referenced before assignment, causing /artifacts failures and API instability. Add safe initialization and verify demo pages load.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":89,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-20T22:44:07.924564+00:00","updated_at":"2026-04-20T22:44:07.924564+00:00","summary":"","completion_summary":"Already resolved: caption/fig_type initialized before conditional in api.py:22557-22558. Live verification: /api/status -> 200, /artifacts?artifact_type=figure -> 200.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/2a81bb0d_6a2_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8, \"safety\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"11d9d78b-9f47-43e5-aa8d-fecb2ce1fb6f","title":"[Artifacts] Seed notebooks DB from existing site/notebooks/ files","description":"The notebooks table is empty despite 100+ notebook files in site/notebooks/. Seed the DB by scanning the directory, extracting metadata from .ipynb files, and inserting records to make /notebooks non-empty for Quest 17.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T10:02:50.485615+00:00","updated_at":"2026-04-19T10:02:50.485615+00:00","summary":"","completion_summary":"Completed: DB seeding done (542 notebooks, 456 with ipynb_path), script committed and pushed to main as ee911a127. Worktree gitdir was broken - committed from main repo.","completion_notes":"Reopened task: DB seeding was done by previous agent but worktree gitdir was broken, preventing commits. Repaired by committing from main repo. DB now has 542 notebooks with 456 having ipynb_path set (was 2). Script committed and pushed to main as ee911a127.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/11d9d78b_9f4_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5012ddb4-d9f2-403c-951d-718dec624ded","title":"[Artifacts] Harden notebook stub filename and HTML escaping","description":"Improve ci_notebook_coverage.py to sanitize notebook stub filenames for unsafe analysis IDs and escape rendered HTML fields to avoid malformed pages/XSS in generated artifacts.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T02:12:17.399855+00:00","updated_at":"2026-04-19T02:12:17.399855+00:00","summary":"","completion_summary":"[Verify] Already resolved — _safe_filename_stem + HTML escaping in origin/main [task:5012ddb4-d9f2-403c-951d-718dec624ded]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5012ddb4_d9f_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"49497a1d3\"], \"completion_shas_checked_at\": \"2026-04-19T02:12:05.105713+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3b0c93d0-552b-4454-97b6-2bb7d660ab2a","title":"[Artifacts] Generate recent analysis summaries in notebook coverage CI","description":"Extend ci_notebook_coverage.py to emit machine-readable and human-readable summaries for recent completed analyses while preserving coverage/stub behavior for Quest 17 demo readiness.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:35:05.853208+00:00","updated_at":"2026-04-19T01:35:05.853208+00:00","summary":"","completion_summary":"[Artifacts] Fix summarize mode to exit before failing DB queries [task:3b0c93d0-552b-4454-97b6-2bb7d660ab2a]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/3b0c93d0_552_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 7, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5942d9a9-09e5-4607-ad14-c3e18c4f1670","title":"[Artifacts] Resolve migration version collisions for deterministic schema upgrades","description":"Fix duplicate migration number collisions (002/040/041/042) by renumbering conflicting migration files and updating migration metadata strings so migration_runner can execute all migrations deterministically.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:30:38.423117+00:00","updated_at":"2026-04-19T01:30:38.423117+00:00","summary":"","completion_summary":"Already resolved: migration duplicate collision fix landed via Senate health-sweep commits (b350bf85, d37373c9) and other agents. Verified 0 duplicate Python numeric migration versions; runner status passes.","completion_notes":"Task already resolved in main. Verified: 0 duplicate Python numeric versions, migration runner status returns OK. No code changes needed — the duplicate collision fix was already resolved by multiple Senate health-sweep commits that landed on main (including task:b350bf85 which renamed 6 colliding files). Acceptance criteria all met.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5942d9a9_09e_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"aa3478613\"], \"completion_shas_checked_at\": \"2026-04-19T01:30:38.400905+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: migration duplicate collision fix landed via Senate health-sweep commits (b350bf85, d37373c9) and other agents. Verified 0 duplicate Python numeric migration versions; runner status passes.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a7a07b25-9642-4689-b40f-13a5ff116689","title":"[Artifacts] Heal stale notebook refs in coverage CI","description":"Detect and repair stale notebook_path and notebook link references when notebook files are missing, and emit explicit remediation summary.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:28:36.044284+00:00","updated_at":"2026-04-19T01:28:36.044284+00:00","summary":"","completion_summary":"[Artifacts] Re-add stale notebook ref healing to ci_notebook_coverage.py [task:a7a07b25-9642-4689-b40f-13a5ff116689]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a7a07b25_964_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3e32e658-1198-4b23-bac0-dc6e3ac9cb99","title":"[Artifacts] Enrich 15+ more targets with PDB/UniProt IDs for Mol* viewers","description":"\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:25:45.120626+00:00","updated_at":"2026-04-19T01:25:45.120626+00:00","summary":"","completion_summary":"Already addressed: sync_target_pdb_uniprot.py landed on main via commit b8f2c01e (squash-merged). DB has 152/185 targets with PDB IDs, 169/185 with UniProt IDs. Mol* viewer verified on G3BP1, ADRA2A, FKBP5, HCN1, TGM2, ALOX15, CLOCK, TET2, C4B, EPHB4. Task adds 74 PDB + 93 UniProt IDs to targets. No new work needed — current branch has noisy unrelated deletions, do not push.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/3e32e658_119_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already addressed: sync_target_pdb_uniprot.py landed on main via commit b8f2c01e (squash-merged). DB has 152/185 targets with PDB IDs, 169/185 with UniProt IDs. Mol* viewer verified on G3BP1, ADRA2A, FKBP5, HCN1, TGM2, ALOX15, CLOCK, TET2, C4B, EPHB4. Task adds 74 PDB + 93 UniProt IDs to targets. No new work needed — current branch has noisy unrelated deletions, do not push.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f3f89c06-7ffd-4472-8b73-9ef9196ae0a7","title":"[Artifacts] Populate structural_data (PDB/UniProt/AlphaFold) for top 15 demo targets to activate Mol* viewer","description":"\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:18:30.949471+00:00","updated_at":"2026-04-19T01:18:30.949471+00:00","summary":"","completion_summary":"Auto-completed by abandonment watchdog: 7944 commit(s) on orchestra/task/f3f89c06-populate-structural-data-pdb-uniprot-alp","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/f3f89c06_7ff_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6483159a-ae48-4602-b07f-443fe701b45b","title":"[Artifacts] Evidence balance matrix: visual for/against balance bar on hypothesis pages","description":"Add a visual evidence balance bar to the Evidence tab on hypothesis pages (Quest 17 A17.6). Shows ratio of supporting vs opposing evidence with strength breakdown (high/medium/low). Sort evidence items by strength. Makes hypothesis pages more compelling for demo.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:15:03.028779+00:00","updated_at":"2026-04-19T01:15:03.028779+00:00","summary":"","completion_summary":"Already resolved: evidence balance bar and strength sort verified in main at commit 700e194d0. All 4 acceptance criteria satisfied.","completion_notes":"Verified acceptance criteria: (1) Balance bar appears in Evidence tab (lines 33055-33082), (2) Shows for/against ratio, (3) Segmented by strength with distinct colors (high=#2e7d32/#c62828, medium=#43a047/#ef5350, low=#81c784/#ff8a80), (4) Rows sorted by strength first (line 33193). Note: original task commits 787bd469b/ab7f7291a are on task branch but not in main history; feature was incorporated via api.py restructure at commit 700e194d0.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/6483159a_ae4_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fc23fb55-8d86-4425-9189-cfd9873b7842","title":"[Artifacts] Link generated notebook stubs into artifacts registry","description":"Update notebook coverage CI flow so newly generated notebook stubs are registered in artifacts tables and reflected in DB-linked coverage metrics.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:10:21.177158+00:00","updated_at":"2026-04-19T01:10:21.177158+00:00","summary":"","completion_summary":"fc23fb55: notebook stub registration already on main via ci_notebook_coverage.py _register_stub function","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/fc23fb55_8d8_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"87de622d-5608-4717-b583-0c36c93a44bb","title":"[Artifacts] Canonicalize malformed /artifacts/// links","description":"Fix malformed duplicate-slash artifact URLs (e.g., /artifacts///) causing link-check failures by normalizing link generation and adding guard logic/tests where appropriate.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:08:38.116802+00:00","updated_at":"2026-04-19T01:08:38.116802+00:00","summary":"","completion_summary":"Already resolved: fix verified in main. _canonicalize_local_url applied to all artifact gallery URLs (14 uses in api.py), middleware redirects /artifacts/, /artifacts//, /artifacts/// to /artifacts (307).","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/87de622d_560_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: fix verified in main. _canonicalize_local_url applied to all artifact gallery URLs (14 uses in api.py), middleware redirects /artifacts/, /artifacts//, /artifacts/// to /artifacts (307).","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"218a4d85-6022-407b-a659-562a10ca3d41","title":"[Artifacts] CI: Register generated notebook stubs in DB coverage","description":"Update scripts/artifacts_notebook_coverage_ci.py so generated notebook stubs are linked in notebooks table, improving measurable coverage for Quest 17.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T01:02:50.498296+00:00","updated_at":"2026-04-19T01:02:50.498296+00:00","summary":"","completion_summary":"Already addressed on main: ci_notebook_coverage.py (_register_stub at line ~998) already inserts notebooks table records with id, title, description, associated_analysis_id, file_path, rendered_html_path, status='active' and corresponding artifact registry entries. File was renamed from artifacts_notebook_coverage_ci.py during Senate consolidation (b4a034242). Stub generation + DB linkage verified present on origin/main at commit 3632e8cb6.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/218a4d85_602_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 5}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5c9770d2-c54e-4b7e-ab10-5f97c1aa4775","title":"[Artifacts] Repair broken internal links on /artifacts and /agent-performance","description":"Investigate HTTP 0 link failures reported by CI for /artifacts and /agent-performance; patch route/link generation and verify via targeted checks.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T00:59:52.082427+00:00","updated_at":"2026-04-19T00:59:52.082427+00:00","summary":"","completion_summary":"Already resolved: 1ac5d3254. _is_template_href() filters template href artifacts in link_checker.py; confirmed on auth/main.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5c9770d2_c54_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b1802f3a-ff6e-4920-b723-b474c5631b29","title":"[Artifacts] Register existing notebooks in database","description":"98 Jupyter notebook HTML files exist in site/notebooks/ but notebooks table has 0 entries. Register all existing notebooks in the DB by mapping filenames to analysis IDs so they appear on analysis/hypothesis pages (Linked Notebooks section).\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T00:50:49.050191+00:00","updated_at":"2026-04-19T00:50:49.050191+00:00","summary":"","completion_summary":"[Atlas] Register existing notebooks: fix 514 DB paths, verify API [task:b1802f3a-ff6e-4920-b723-b474c5631b29]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/b1802f3a_ff6_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d271b465-bf6e-45bc-b22b-05349b863b4e","title":"[Artifacts] Add Mol* 3D protein structure viewer to entity pages (A17.1)","description":"REQUEUED — SPEC FILE MISSING: Spec file not found on disk. See original task description for context. Before doing work, verify the spec exists on main or create one.","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T00:50:41.687012+00:00","updated_at":"2026-04-19T00:50:41.687012+00:00","summary":"","completion_summary":"Already resolved: Mol* 3D protein viewer on entity pages was added in commit db23ef9cf. Spec file d271b465_bf6_spec.md exists and confirms feature is live on main.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/d271b465_bf6_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Already resolved: Mol* 3D protein viewer on entity pages was added in commit db23ef9cf. Spec file d271b465_bf6_spec.md exists and confirms feature is live on main.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ff90b5cf-54bf-45f6-a31d-36ad5bc87135","title":"[Artifacts] Harden Mol* fallback gene escaping and URL encoding","description":"Improve /hypothesis Mol* dynamic fallback by JS-safe gene literal handling and URL encoding for manual RCSB/AlphaFold search links to keep 3D artifact panel reliable for unusual target gene symbols.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T00:42:33.331595+00:00","updated_at":"2026-04-19T00:42:33.331595+00:00","summary":"","completion_summary":"Already resolved: fix confirmed at origin/main:api.py:34515 via commits 1cd1650e5 and 70d0e996c. Gene escaping with html.escape() is in place.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/ff90b5cf_54b_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Verified: `git show origin/main:api.py | grep -n \"var gene =\"` shows line 34515 with `var gene = {json.dumps(html.escape(target_gene_first))};` — the fix is present on main.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"96e927b5-46cd-49e8-813d-6c3d5a7b4913","title":"[Artifacts] Add Mol* 3D protein viewers to hypothesis pages with target genes","description":"Hypotheses referencing specific proteins/genes should embed interactive Mol* viewers. Check which already have them, add to those missing.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T00:41:52.969058+00:00","updated_at":"2026-04-19T00:41:52.969058+00:00","summary":"","completion_summary":"Mol* 3D protein viewer feature verified on main — no additional work needed","completion_notes":"Verified feature already on main via git show origin/main:api.py | grep protein_viewer_html. Rebased and pushed verification commit 401c0d75d with updated spec.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/96e927b5_mol_protein_viewer_spec.md","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"401c0d75d\"], \"completion_shas_checked_at\": \"2026-04-19T00:41:52.940666+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Mol* 3D protein viewer feature verified on main — no additional work needed","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6110182f-0cfb-4a6d-8b6f-ba18acefea89","title":"[Artifacts] Integrate 3D protein structure viewer (Mol* or NGL)","description":"Embed Mol* or NGL Viewer for protein structures. Fetch from PDB/AlphaFold. Display on entity pages for proteins. Add to analysis artifacts. Show predicted vs. experimental structures side-by-side. Quest 17.\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":88,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-18T17:32:13.993569+00:00","updated_at":"2026-04-18T17:32:13.993569+00:00","summary":"","completion_summary":"MolStar viewer integration verified on main — all 6 acceptance criteria satisfied. Commit 0bce606d6 landed with side-by-side PDB vs AlphaFold on entity pages, plus existing integration on hypothesis/artifact/challenge pages.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/6110182f_0cf_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-24-REPR0001","title":"[Artifacts] Reproducible analysis chains: pin artifact versions in analysis specs","description":"Extend analysis specifications to include a pinned_artifacts field: list of (artifact_id, version_number) tuples that fix the exact inputs used. When an analysis runs, auto-snapshot all input artifact versions into the analysis provenance_chain. Add verify_reproducibility(analysis_id) that checks whether pinned versions still exist and match content_hash. Add /api/analysis/{id}/provenance endpoint showing full input/output artifact DAG with versions. This ensures any reasoning chain can be replayed with identical inputs. Depends on: a17-20-VAPI0001.","status":"done","priority":87,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T08:11:03.820536+00:00","updated_at":"2026-04-26T08:11:03.820536+00:00","summary":"","completion_summary":"[Verify] Task already on main at 541786d21 — verified acceptance criteria [task:a17-24-REPR0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-24-REPR0001_reproducible_analysis_chains_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 7, \"analysis\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-30-DREF0001","title":"[Artifacts] Dashboard data source refresh engine","description":"Build the engine that evaluates dashboard data sources and re-renders dashboard HTML. Supports: sql_query (run against scidex.db), artifact_ref (fetch latest version of an artifact), kg_query (query knowledge graph), api_endpoint (fetch from internal API). Results injected into template_html at {{data:KEY}} placeholders. Track last_rendered_at and cache rendered HTML. Trigger re-render on interval or when source artifacts are updated.","status":"done","priority":86,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T05:10:22.151051+00:00","updated_at":"2026-04-26T05:10:22.151051+00:00","summary":"","completion_summary":"[Artifacts] Fix refresh endpoint to return post-render state from refresh_dashboard() [task:a17-30-DREF0001]; [Artifacts] Dashboard data source refresh engine; update api.py refresh endpoint [task:a17-30-DREF0001]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-30-DREF0001_dashboard_refresh_engine_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"631c0248-c30b-41d0-90d1-c894b71a5a29","title":"[Artifacts] Build figure gallery and citation system","description":"Create /figures page and per-hypothesis figure galleries. Display figures extracted via paper_figures() tool. Add citation links, PMC deep links, alt text. Enable agents to reference specific figures in debates. Quest 17.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":86,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T02:55:00.800046+00:00","updated_at":"2026-04-19T02:55:00.800046+00:00","summary":"","completion_summary":"Already on main: /figures gallery (line 5286), /papers/{pmid}/figures/{figure_num} detail (line 5505), citation links, alt text, figure navigation all confirmed","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/631c0248_c30_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-05-D7D1D5F8","title":"[Artifacts] Evidence matrix on hypothesis pages","description":"Add structured evidence table on hypothesis detail pages. For each citation: PMID, title, year, relevance score (0-1), evidence type (supports/contradicts/neutral), key finding excerpt. Sortable by relevance. Color-coded rows. Pull from hypothesis evidence_for/evidence_against fields.","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T07:51:33.433466+00:00","updated_at":"2026-04-26T07:51:33.433466+00:00","summary":"","completion_summary":"[Artifacts] Update spec work log: rebase to latest main for evidence matrix merge retry [task:a17-05-D7D1D5F8]; [Artifacts] Polish evidence matrix sort indicators in api.py: use Unicode arrows (↕ ↑ ↓) instead of text [sort]/[asc]/[desc] [task:a17-05-D7D1D5F8]; [Artifacts] Evidence matrix on hypothesis pages: PMID, Title, Year, Relevance, Type, Key Finding [task:a17-05-D7D1D5F8]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 7, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"78d97e78-8dd6-4ba0-b67f-c2978d4e152e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T02:22:30.246967+00:00","updated_at":"2026-04-26T02:22:30.246967+00:00","summary":"","completion_summary":"Already resolved: e82348c03. /artifacts gallery page with filtering, search, pagination, and detail view was built and merged to main before this task was assigned. Verified 200 OK on live server, search and type filtering confirmed working.","completion_notes":"Verified: /artifacts returns 200, search filtering (q=tau) and type filtering (artifact_type=figure) both work. Commit e82348c03 landed the gallery on main before this task was assigned.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b9807f4f-89b8-446c-95bb-bb879b5863e5","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.793843+00:00","summary":"","completion_summary":"Duplicate. /artifacts already exists (200, 973 lines).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"86012349-4c9d-4ca9-ae92-2fad79ddbd73","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.769304+00:00","summary":"","completion_summary":"Duplicate. /artifacts page exists (200, 973 lines, 77 artifact/gallery/filter refs).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dafb0ad3-8177-449a-a720-e940bc660133","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.752894+00:00","summary":"","completion_summary":"Already verified/completed in this session.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e1d3d72e-03ce-4457-af20-f3747f5bfd54","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.737326+00:00","summary":"","completion_summary":"Artifacts gallery page exists at /artifacts (200, 973 lines, 77 artifact/gallery/filter references). Page includes browsable artifacts with filtering and search.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3a2f589f-bd4e-4b7a-8008-e6080929917e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.719932+00:00","summary":"","completion_summary":"Artifact gallery page already exists at /artifacts (api.py lines 5365-5850) with full functionality: search (q=), type filtering (artifact_type=), quality filtering (min_quality=), pagination (30/page), sorting (quality/date/type/links), featured figures grid, notebook showcase, entity explorer pills, recent activity sidebar. Detail page at /artifact/{id} also functional. All endpoints return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a7be5b5a-5d01-4c94-8e6b-d7eef9763502","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.695975+00:00","summary":"","completion_summary":"Already complete. /artifacts returns 200 with full artifact gallery page including type filtering, search, and links to parent analyses/hypotheses. 62 artifact/gallery/filter references found in rendered HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f4851e02-6caa-4826-8644-be9d56bccc46","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.676591+00:00","summary":"","completion_summary":"Verified /artifacts gallery page is already fully built and functional. Features: browsable gallery of 43,758 artifacts with type filtering (8 types), search, sorting (quality/date/links/type), pagination, featured figures grid, showcase notebooks, entity exploration, recent activity feed, grid/list views, parent analysis/hypothesis links, and quality score indicators. All rendering correctly at 100KB+ page. No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"26128cc1-65b1-4390-a638-59bdedcb0361","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.655507+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented and functional. Page renders with 43,517 artifacts, search, type filtering (10 types), sorting (quality/date/links/type), list/grid views, featured figures gallery, showcase notebooks, entity explorer, recent activity feed, type distribution chart, and provenance tracking (1.8M links). All filters return 200. No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b2ae9064-df2f-49b5-8482-48d4ee5aed30","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.630457+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists at api.py:5245 with comprehensive gallery features - search (q param), filter by type (artifact_type param), minimum quality threshold, sorting (quality/date/type/links), pagination (30 per page), grid/list views, links to parent analyses and hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e83f833a-5924-48f7-997a-06d898e5ce8a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.610839+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts — HTTP 200 with pagination, filtering by type, search, and links to parent analyses/hypotheses. Browsable gallery with list/grid views.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9106d272-7463-4f7c-823d-62a948cbb9fe","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.591794+00:00","summary":"","completion_summary":"Already fully implemented: /artifacts page renders as 'Artifact Gallery' with search, type filtering, and artifact cards linked to parent analyses and hypotheses. Page returns 200 with figures, notebooks, and other artifact types displayed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ee3d1bac-f034-4182-85ac-f9ad791da9ad","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.573114+00:00","summary":"","completion_summary":"Fixed /artifacts gallery page timeout. The page already existed with full features (search, type filtering, grid/list views, featured figures, entity exploration, provenance links) but was timing out due to: (1) COUNT(*) on 1.8M artifact_links rows (13.5s) — replaced with MAX(rowid) estimate (16ms), (2) json_each scanning all 43K artifacts for entity exploration (4.3s) — limited to top 2000 quality artifacts (0.37s). Page now loads in <2s.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"14a781ce-8328-488c-a0de-f879a396de84","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.556034+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists with title 'Artifact Gallery', 43,390 artifacts in DB, filter bar with search input and type select, responsive layout. All functioning.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"36b9d576-4757-4b51-a762-ad5d044d058d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.540796+00:00","summary":"","completion_summary":"Task already complete: /artifacts gallery page exists with filtering by type (figure, notebook, wiki_page, etc.), search, quality thresholds, sort options (quality/date/links), grid/list views. 43,992 artifacts browsable. Page loads correctly (HTTP 200).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b47e004f-18ac-4cb1-b029-275f2f3d9199","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.524595+00:00","summary":"","completion_summary":"b47e004f-18ac-4cb1-b029-275f2f3d9199","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"20d70d8f-c241-4dcb-a5a6-e2f9d4adec1a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.507505+00:00","summary":"","completion_summary":"Duplicate — /artifacts gallery already exists with 36K+ artifacts, filtering, pagination, and rich UI.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"edb32a68-b62a-467f-9e57-a7f396db6351","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.492154+00:00","summary":"","completion_summary":"Task already fully implemented: /artifacts gallery page exists with browsable cards, filtering by artifact type, search, quality-based sorting, pagination, stats overview, links to parent analyses/hypotheses, and individual artifact detail pages with provenance.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a83c91ba-01d0-4387-bf35-1fb90d4bd113","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.476615+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts exists and renders (93KB). 36291 artifacts in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e487d5db-8c3a-4b66-aa51-57d435bcc139","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.461257+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional: browsable gallery with 37+ cards, filtering by type (notebook, figure, hypothesis, etc.), search, quality-based sorting, featured figures showcase, pagination, and links to parent analyses/hypotheses. Returns 200 with 93KB of rich HTML.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2d8ede03-9bcb-4d24-a5c2-2cc5070e6ddc","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.444898+00:00","summary":"","completion_summary":"Verified complete by slot 1","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"01b0f7d8-501c-459f-be43-f8e40503275d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.427940+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d8b6061c-fd4d-433b-8351-2e815cab6a06","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.411985+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e139c64b-b992-4657-9fa8-634bf7be947d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.397069+00:00","summary":"","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"024fed93-1b74-4e4f-9ba5-f1a09721b88c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.379922+00:00","summary":"Verified complete by slot 1","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"15089935-70f8-4015-9eb9-0dd2d863ca13","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.365227+00:00","summary":"Already implemented - verified by slot 1 CI check","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"731c8b84-8a1a-4a0c-9e2e-d5e869228adf","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.349600+00:00","summary":"","completion_summary":"Dup.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"7c2b3707-1842-4cd0-82b2-f38cb14bc9a1","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.334455+00:00","summary":"","completion_summary":"Duplicate of 46e5ba98 — /artifacts gallery already exists and is fully functional with 36K+ artifacts, type/search/quality filtering, pagination, and rich UI.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"46e5ba98-7a66-4988-b107-34a0e26942cb","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.316061+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already exists and is fully functional: 36K+ artifacts across 7 types (wiki_page, figure, kg_edge, hypothesis, experiment, notebook, analysis), with filtering by type/search/quality, pagination, featured figures grid, showcase notebooks, and entity exploration. All filters return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"23621bd5-4a86-47fc-bf77-e8511ccd3054","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.301614+00:00","summary":"","completion_summary":"Dup: already implemented.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e39ecf1b-8cd9-4f9a-93c9-08b12542a1c5","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.283866+00:00","summary":"","completion_summary":"Dup: already implemented.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f9ccc491-5e73-4571-b144-347980525026","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.247138+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented with: browsable gallery of 36K+ artifacts across 7 types (wiki_page, figure, kg_edge, hypothesis, experiment, notebook, analysis), type filtering, text search, quality score sorting, pagination, links to parent analyses/hypotheses, grid/list view modes, and responsive design. Page loads in 77ms.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"25f2d388-7a74-42ce-8da6-a8bcd2832263","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.227704+00:00","summary":"","completion_summary":"Duplicate task — already verified complete by slot 10.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1a98dae9-1d50-4c75-ac64-48fcd5475b98","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.209903+00:00","summary":"","completion_summary":"Duplicate — already verified. /artifacts (200, 99KB) has type filtering (7 types), search, grid layout, distribution chart. 36,260 artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8af8fb46-be10-4a30-92a3-1147b9e570fb","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.192055+00:00","summary":"","completion_summary":"Duplicate of 0515e080 (already completed). /artifacts returns 200 with 98KB content, 30 artifact cards, search, type filtering, figure/notebook references, and analysis links.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d86d3087-8523-467d-b01c-66a9b7c80da9","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.173976+00:00","summary":"","completion_summary":"d86d3087-8523-467d-b01c-66a9b7c80da9","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0515e080-89ed-49b7-890d-42b73e7b19c2","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.157644+00:00","summary":"","completion_summary":"Dup: /artifacts gallery exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c0535a8b-b5fe-444e-aeaa-f71b954c995c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.133165+00:00","summary":"","completion_summary":"Dup: /artifacts gallery exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"161284ac-6c18-413d-b28b-3b8430859660","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.117635+00:00","summary":"Already done: /artifacts returns 200","completion_summary":"Dup: /artifacts gallery exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"914022f1-31ed-4cfa-8666-19c7b6b5055e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.100913+00:00","summary":"","completion_summary":"Duplicate: /artifacts gallery page exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"261caefe-00ad-4440-bc02-9af159309a4d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.085020+00:00","summary":"","completion_summary":"261caefe-00ad-4440-bc02-9af159309a4d","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"82c4ba82-b3f6-4a09-b116-9deceb7ebbe1","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.069630+00:00","summary":"","completion_summary":"Duplicate: /artifacts gallery page exists (99KB) with filtering and search.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cd48bebb-80e5-4722-abe9-5b02471b07d0","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.055403+00:00","summary":"","completion_summary":"Already implemented: /artifacts page (99KB) exists with gallery view, type filtering (figures, notebooks), search, and links to parent entities.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"72b8ee7a-9d32-4b75-b2d1-df1ceb88552c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.038807+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already implemented with browsable figures, notebooks, wiki pages. Includes filtering by type and search. 36,226 artifacts in DB.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"226fa59b-ec30-4892-bffb-8ad6b0629e94","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.020313+00:00","summary":"","completion_summary":"Duplicate — /artifacts gallery already verified and working (99KB, HTTP 200).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fe72b392-1da0-408f-8659-552fc8c7d21b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:30.004767+00:00","summary":"","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"68aabc59-4ac7-47e6-90c9-ff2ef4e3936e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.988793+00:00","summary":"","completion_summary":"Verified /artifacts gallery page exists (99KB, HTTP 200): browsable gallery with figures, notebooks, code blocks, filtering by type, search, and links to parent analyses/hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"08cf8fd5-c0f0-4e7a-bbe0-56bc10542d76","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.973214+00:00","summary":"","completion_summary":"Duplicate. /artifacts gallery exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8b2f48d7-943e-4c85-850c-a45eb88916fc","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.957755+00:00","summary":"","completion_summary":"Duplicate of 070352c9. /artifacts gallery exists in api.py line 5245.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"070352c9-2658-49b7-8afc-be5b2627b09b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.942620+00:00","summary":"","completion_summary":"Artifacts gallery page exists at /artifacts (api.py line 5245). Features: browsable gallery with type filtering (hypothesis, analysis, wiki_page, paper, notebook, figure, etc.), search, quality score filtering, grid/list views, pagination, parent analysis/hypothesis links, and figure previews. Currently returning 500 due to DB lock contention from concurrent processes (16 holders) - transient issue that resolves with lower contention.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"00d2cfd0-c6c4-4491-95ca-f4317333598a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.928186+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already exists and is fully functional (200, 99KB). Has: type filtering (7 types), search, grid layout, distribution chart, links to analyses. 36,260 total artifacts across wiki pages, figures, KG edges, hypotheses, experiments, notebooks, analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"de7c7ff4-0454-4f1a-a3d2-c86487f7d527","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.913435+00:00","summary":"","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ea08bfe9-c442-430a-94ff-4abee5cffe2e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.893777+00:00","summary":"","completion_summary":"Duplicate - already completed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"dfeaf6d3-4a0f-4b6a-9d0c-7b17b32360ff","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.874630+00:00","summary":"","completion_summary":"Already implemented. /artifacts gallery page exists with title 'Artifact Gallery', filter by type, search, links to parent analyses/hypotheses. 36K+ artifacts displayed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e9adf69d-b635-4f7c-9eb7-621dcc427990","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.859584+00:00","summary":"","completion_summary":"Artifact gallery exists at /artifacts (98KB): showcase notebooks, entity exploration, featured figures, filtering by type. Fully functional.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d44468fc-5448-4d0b-a96d-7dd914c17140","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.843959+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c6bd9aa2-fbee-4068-9d57-c673cd8ffee7","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.827382+00:00","summary":"","completion_summary":"Duplicate of task 1864ffe6. /artifacts gallery already fully implemented with 36K+ artifacts, search, type filtering, sort, grid/list views, parent context links.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"67ddc2b1-8067-489d-82c0-346a6bc30f1d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.808970+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts (200). Has gallery view, type filtering, search, links to parent analyses. No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2e13374d-b561-4b7b-a1a7-ba154a4e87f2","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.790981+00:00","summary":"","completion_summary":"Duplicate (4th copy). /artifacts gallery exists and works.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"962f6c08-d868-4690-8507-1123a763d619","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.773119+00:00","summary":"","completion_summary":"Artifacts gallery at /artifacts already exists: 99KB page with artifact browsing, figures, notebooks, filtering by type. Returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"701abaa7-4473-4168-bd0d-82de1b6fe4e7","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.756958+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ff3bfcbf-3ff8-4b53-9de4-33a0c39510d1","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.738149+00:00","summary":"","completion_summary":"Verified: /artifacts page already exists with browsable artifact gallery, filtering by type, search functionality, and links to parent analyses. Returns 200 with rich content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"eeae1c26-9729-4be9-af3c-67a30088e23d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.723043+00:00","summary":"","completion_summary":"Duplicate of task 9834c09a. /artifacts gallery already exists with full functionality: 36K artifacts, filtering by 7 types, search, sorting, grid/list views, parent links, previews. All return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1864ffe6-1e62-4c27-a08c-afd0fba66d73","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.706338+00:00","summary":"","completion_summary":"Enhanced /artifacts gallery (already fully functional with 36K+ artifacts, search, type filtering, sort, grid/list views). Added Parent Context section to /artifact/{id} detail page with clickable cards linking to parent analyses/hypotheses with title lookups. Added smart linking for metadata fields (experiment_id, notebook_id). Clean filepath display.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"af626435-2e49-458f-951b-992da7685f9c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.690734+00:00","summary":"","completion_summary":"Duplicate — /artifacts gallery already exists with 36K artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f774a6e1-8089-4acc-b47d-d911ad468444","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.674461+00:00","summary":"","completion_summary":"Already implemented — /artifacts page shows 36,226 total artifacts with stats (9,667 figures, 174 notebooks, 52% avg quality, 1.5M provenance links). Includes search, filtering by type and quality, browsable gallery with cards linking to parent analyses and hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2ee0671c-e61e-47ab-848d-a3dc729bbd5e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.656384+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"395f6fd7-f0dd-4595-9d1e-bb62785f738d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.641771+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already exists (HTTP 200, 98KB). Includes filtering by type, search, figures, notebooks, code blocks with links to parent analyses and hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"21b2b088-e945-4f31-9ea9-0571c4d54b3b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.627315+00:00","summary":"","completion_summary":"Duplicate of 479a66df. Artifact gallery at /artifacts already fully implemented with search, filtering, sorting, grid/list views, showcase sections, pagination. Returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"471bf72e-4bc9-4c20-92aa-0465e9b63cbe","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.611023+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already existed with comprehensive features (filtering, search, sort, grid/list view, featured figures, showcase notebooks, entity exploration, pagination, parent links on cards). Enhanced artifact detail page with: clickable analysis_id/hypothesis_id/notebook_id links in metadata table, and figure preview rendering with image display, caption, and figure type on figure artifact detail pages.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"479a66df-38db-4055-92ae-3975989932f1","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.593843+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented with search, filtering by type, quality-based sorting, grid/list views, showcase sections (featured figures, top notebooks, entity explorer), pagination, and navigation integration. All endpoints return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"60d5c0c8-7788-4350-9223-b0be08994797","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.578350+00:00","summary":"","completion_summary":"Duplicate of f20bfa5f. /artifacts gallery page exists with Showcase Notebooks, Entity browser, Featured Figures.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9834c09a-0cb7-4129-8c62-e228033f55de","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.563367+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with full functionality: 36K artifacts browsable, filtering by 7 types (figure, notebook, hypothesis, analysis, wiki_page, kg_edge, experiment), search, sorting (quality/date/type/links), grid/list views, parent analysis/hypothesis links, figure previews, and pagination. All filter combinations return 200 with 80-121KB content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f20bfa5f-9ce1-42bf-8da0-093d45b3695c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.548571+00:00","summary":"","completion_summary":"Already complete: /artifacts page renders with Artifact Gallery, Showcase Notebooks, Explore by Entity, Featured Figures sections. 9,667 figure artifacts and 130 notebooks browsable. Page returns 200 OK.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4e40309c-f9b8-438e-8173-e291bcda7b3a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.534638+00:00","summary":"","completion_summary":"Already implemented. /artifacts page (98KB, 200 OK) has browsable gallery with: type filtering (40 notebooks, 22 figures, 10 code blocks), search functionality, and parent analysis/hypothesis links. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2e717eeb-ca26-46f1-8d1e-641823cf32b6","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.519177+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists with Artifact Gallery including Showcase Notebooks, Explore by Entity section, Featured Figures with KG edge cards. Has filter bar with search input and type select dropdown. Links to parent entities/analyses. Responsive design with mobile support.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1d48022e-dcb4-42d5-966e-c279f0a2869e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.504577+00:00","summary":"","completion_summary":"Verified: /artifacts gallery already fully implemented with search input, type filtering with badges, quality filter, sorting (quality/date/type/links), pagination, list/grid views, featured figures section, showcase notebooks, explore-by-entity pills, recent activity feed, artifact distribution chart, parent analysis/hypothesis links, and figure image previews. All 7 URL parameter combinations tested at 200 OK.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e0a7f270-9fd1-4682-b021-1222abc0f2bf","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.486384+00:00","summary":"","completion_summary":"Artifact gallery page already exists at /artifacts with search, type filtering, quality filtering, sort options, entity tags, parent analysis/hypothesis links, pagination, and grid/list views. Returns 200 with 36K+ artifacts. No work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3edc2830-35ba-4fed-9a33-4032f3ae09a4","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.471458+00:00","summary":"","completion_summary":"Page already fully implemented: /artifacts returns 200 with gallery of 36,226 artifacts (figures, notebooks, hypotheses, wiki_pages, kg_edges, experiments, analyses). Supports search, type filtering, quality filtering, sorting, pagination, grid/list views. Individual artifact detail pages at /artifact/{id} also work. All API endpoints functional.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e70088c5-cfa6-40ce-9d52-46f050804ccd","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.456887+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional. Features: browsable gallery of all 37K+ artifacts (figures, notebooks, code blocks, etc.), filtering by type with count badges, full-text search, quality score filtering, sort options, grid/list view toggle, featured figures section, showcase notebooks, entity exploration, pagination, and links to parent analyses/hypotheses. Detail page at /artifact/{id} also works. Verified all routes return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bfb5ae85-f59e-4e07-a305-271ef24368ec","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.441095+00:00","summary":"","completion_summary":"Auto-completed duplicate","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"90a6d85e-d36e-41d3-91d4-a57b224e5a58","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.424519+00:00","summary":"","completion_summary":"Auto-completed duplicate","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c38dd0a2-bbeb-4dc7-9eb4-4768ded88f27","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.409755+00:00","summary":"","completion_summary":"Auto-completed - data already enriched, duplicate prevention","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6b750049-04a3-4bb1-8c11-7ea506e75f74","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.395203+00:00","summary":"","completion_summary":"Bulk cleanup - verified data already enriched","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1cea5863-b5af-4efc-ac7b-35ed6d944c67","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.379634+00:00","summary":"","completion_summary":"Duplicate — /artifacts gallery already live at 75KB with filtering, sorting, search.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"06104a1f-4930-45e7-a01a-92ed8d94005b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.364610+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2878d18b-ce0e-4e97-bb63-bec9e4cc425e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.341461+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3e924cf7-21d6-404e-bb63-ea68fa05f1ed","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.324016+00:00","summary":"","completion_summary":"Bulk cleanup - duplicate or already-completed task","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f9632bfe-b92b-4e1e-8d3b-eca72f744dca","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.304697+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already built and live. Returns 200 with 75KB content. Shows featured figures, filterable by type/quality/search. DB has 35,701 artifacts across 7 types: wiki_page (18,307), figure (9,142), kg_edge (7,615), hypothesis (199), experiment (188), notebook (174), analysis (76). Gallery includes sorting, pagination, and links to parent content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"faa8830c-4f12-4511-99b2-405439bd0b79","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.269526+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional. Features: search, filter by type (10 types), quality filter, sort (quality/date/links/type), grid/list views, featured figures, showcase notebooks, entity exploration, recent activity, pagination, detail pages at /artifact/{id} with provenance tracking. All endpoints return 200. Nav links in sidebar and menus.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"521427e3-dd95-446c-86fd-2515a4cea489","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.249544+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already fully implemented: 35,701 artifacts across 7 types (wiki_page, figure, kg_edge, hypothesis, experiment, notebook, analysis), type filter buttons, text search, pagination, featured figures grid, figure previews, parent analysis/hypothesis links, quality scores, entity tags, and sort options. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8529a47a-9cb0-4ca5-a172-eb3dcfea9e04","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.234606+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"47ecddd0-884d-4162-9f4b-6f0569abe25e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.220186+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0fc189f6-e33f-4875-b32b-0b5599a02259","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.205350+00:00","summary":"","completion_summary":"Already implemented: /artifacts gallery page exists with 35,601 artifacts, filtering by type/search/quality, sorting, pagination (30/page), grid+list views, featured figures section, type-specific icons, and nav integration. Returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"11727d77-ed36-4aca-aa92-4ed72babd4fe","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.190027+00:00","summary":"","completion_summary":"Artifact gallery page already exists at /artifacts with browsable cards (30 per page), type filtering (?type=figure), search (?q=...), and links to parent analyses/hypotheses. Supports all artifact types: figures, notebooks, wiki pages, hypotheses, etc.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e7367305-ab2d-4b46-8fae-14926d8a99cd","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.174777+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already existed with full functionality (search, filter, sort, pagination, type badges, stats grid, featured figures, recent activity, detail pages). Enhanced with two new sections: (1) Showcase Notebooks — top 6 notebooks with descriptions, quality scores, and entity tags; (2) Explore by Entity — top 12 entities by artifact count with clickable filter pills. DB queries verified. Code pushed to main.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0f40cefe-552b-4a79-8e08-368adc155637","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.158031+00:00","summary":"","completion_summary":"Artifact gallery already fully implemented at /artifacts (74KB page). Features: type filtering (9 types), quality filter, sort options, grid/list views, featured figures, type distribution chart, search. Detail page at /artifact/{id} also works. 35K+ artifacts in DB (18K wiki, 8.9K figures, 7.6K kg_edges, 199 hypotheses, 169 notebooks).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b6185656-0b63-4c33-8948-357689edadbc","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.141832+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists with browsable gallery, search, type filtering, breadcrumbs, and links to parent analyses/hypotheses. 76+ artifact references rendered.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d35623a1-c238-4931-bbc4-88e2d990c702","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.125389+00:00","summary":"","completion_summary":"Artifact gallery page already exists at /artifacts with full filtering, search, type badges, sort options, grid/list views, featured figures, type distribution chart, recent activity, pagination, and parent links. 35K+ artifacts serving correctly (200 OK).","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"539042d7-46cd-41fe-9513-cb17e7ef5ade","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.108584+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional. Returns 200 with 35,462 artifacts. Features: search, type filtering (10 types), quality filtering, sort (quality/date/links/type), grid/list views, featured figures, recent activity, type distribution chart, pagination, parent analysis/hypothesis links, entity tags, and detail pages at /artifact/{id}.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f2a9dd6d-9f39-455b-9fc3-589ae53c4b3e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.088373+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented with search, type filtering, quality filtering, sorting (quality/date/links/type), grid/list view toggle, pagination, featured figures showcase, and responsive design. Returns 200 with all features working.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"eede73ef-923b-4c20-b754-4ea893418b3e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.072384+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with filtering by type (figures, notebooks, code blocks, data tables), text search, and links to parent analyses and hypotheses. Page returns 200 and renders 76+ artifact-related elements.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"97cd6583-4ebd-446e-9356-6c1baf4b137d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.057494+00:00","summary":"","completion_summary":"Task already complete. /artifacts page exists with filter bar, search, and browsable card gallery. 35,462 artifacts across 7 types (analysis, experiment, figure, hypothesis, kg_edge, notebook, wiki_page). Page returns 200 with full content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4088cbe4-f3c0-49de-9a0e-cce0ba0d0a0c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.041743+00:00","summary":"","completion_summary":"Duplicate task — artifact gallery already exists at /artifacts (75KB page with figures, notebooks, code blocks, filtering, and search). See eecf4ef6 completion.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"eecf4ef6-1aa3-4766-b4e5-f9823bf979ee","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.025011+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts — 75KB page with figures, notebooks, code blocks, filtering by type, search, and links to parent analyses. Feature is complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e1719a7b-860d-4ca7-8033-dee53c310474","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:29.005846+00:00","summary":"","completion_summary":"Already fully implemented — /artifacts gallery has search, type filtering, quality filtering, sort, list/grid views, featured figures, type distribution, pagination, and detail pages with provenance. Nav link exists. Page returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b585fde3-cfd5-40c1-98b8-b25105a974ce","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.989664+00:00","summary":"","completion_summary":"Artifacts gallery at /artifacts already exists and is fully functional (75KB page with filtering by type, search, card grid layout, links to parent analyses). No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e9fe0853-1ebe-4fe0-a35d-b091cfa856eb","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.971752+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented and live. Features: search, type filtering (10 types), quality filtering, sort (quality/date/links/type), grid+list views, featured figures, pagination (30/page), parent analysis/hypothesis links, entity tags. 35K+ artifacts served from artifacts table. Accessible via HTTPS at scidex.ai/artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"2de6ea86-5399-497c-9eea-7c68124f4ad4","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.956972+00:00","summary":"","completion_summary":"Artifact gallery page already exists at /artifacts with full filtering (type, search, quality), pagination, grid/list views, figure previews, notebook previews, parent analysis/hypothesis links, and /artifact/{id} detail page. 73KB rendered page. No work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"412419c6-a706-4892-b8e1-9bb525ff6774","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.941884+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented with search, type filtering, quality filtering, sort options, grid/list view, featured figures, type distribution chart, recent activity, pagination, and parent links. Page returns 200 and renders content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bf5b2356-8c8a-45d8-8690-fcd856a70393","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.927979+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional with filtering by type, search, parent links to analyses/hypotheses, and card-based browsable layout.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4c328f39-bacc-4ef8-8301-ff8159d5c765","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.912258+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts (api.py:4455-4843) with full features: search, type filtering, quality filtering, sort options, grid/list views, featured figures, pagination, entity tags, and links to parent analyses/hypotheses. 34,382 artifacts across 7 types. Page returns 200 OK.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4f0713f4-3066-4684-b51b-8c162a940aef","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.898193+00:00","summary":"","completion_summary":"Improved /artifacts gallery page: hero stat cards (5 metric cards), fixed type distribution bars (min 1% width for small types), pill-style parent analysis/hypothesis links, 'Showing X of Y' count indicator. All 7 artifact types (34K+ artifacts) browsable with search, type filters, quality filters, sort, pagination, grid/list views. Page verified rendering all sections including distribution chart, recent activity, and featured figures.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0f617632-7b5d-4ef7-a5a0-27efad200126","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.881833+00:00","summary":"","completion_summary":"Enhanced existing /artifacts gallery page with: (1) artifact link counts from artifact_links table displayed on each card, (2) sort-by-links option (Most Linked) alongside quality/date/type, (3) page caching via _get_cached_page/_set_cached_page for performance with 34K artifacts, (4) visual type distribution bar chart on front page, (5) recent activity section showing last 5 artifacts. Page serves 34,381 artifacts with filtering, search, pagination, grid/list views, and figure previews.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9acaf81a-afca-483f-b35d-0dbc37aab14c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.862331+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts. Returns 200 with browsable gallery including type filtering (figures/notebooks/code blocks), search, pagination, and links to parent analyses/hypotheses. 7853 figure artifacts registered.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3fac7fc5-7ea6-4e24-8f72-9f1cea56eea4","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.845900+00:00","summary":"","completion_summary":"Already complete: /artifacts gallery page exists at api.py:4448 with search, type filter badges (10 types), quality score bars, entity tags, figure image previews, notebook previews, parent analysis/hypothesis links, grid/list views, sorting (quality/date/type), pagination, and stats summary.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5d3b1e5c-0f9a-43d0-b27e-1b78a3c86b48","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.827279+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with browsable gallery of artifacts, filtering by type (figure, notebook, code block), search functionality, and links to parent analyses/hypotheses. 813-line page with 51 links.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"8eb7b977-cfbe-4380-8402-367b3ae101b8","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.812060+00:00","summary":"","completion_summary":"Already implemented. /artifacts page exists with title 'Artifact Gallery', showing figures (19 refs), notebooks (3), code blocks (10). Has filtering by type and search functionality. Returns HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"193e7cf9-c299-4d17-b8bd-74ea5e479853","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.795296+00:00","summary":"","completion_summary":"Artifact Gallery page already exists at /artifacts with filter bar (type filter, search), artifact cards, and links to parent analyses/hypotheses. Page returns HTTP 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1739384c-18c3-4ad5-b3ea-760b2849d3bd","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.779453+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with featured figures, browsable gallery, and type filtering. Returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6f41221c-8e8e-41b8-83e0-acb459c3c3df","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.762840+00:00","summary":"","completion_summary":"Already implemented. /artifacts page returns 200 with full gallery: figures, notebooks, code blocks with search/filter UI. 1.38M artifact links in DB, gallery has type filtering and search.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b0971bf7-9a0a-4b1b-9a56-2c27de7d1c2d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.743512+00:00","summary":"","completion_summary":"The /artifacts page already exists (73KB, 200 OK) with browsable gallery, filtering by type, and search functionality. It lists figures, notebooks, and code blocks with links to parent analyses/hypotheses. No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f872f573-d37c-4170-9fa5-b9b567ea4702","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.727094+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and renders. Has filter bar with search input and type select, card-based browsable layout with 6615 artifacts. Returns 200 with full styling and responsive design.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"60a9b44f-0460-4457-b8ef-a99f2152f38d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.712123+00:00","summary":"","completion_summary":"Already verified complete in previous task runs.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9493ac0f-a442-480e-b9cc-5958f8088833","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.697744+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with 73KB page, 30 cards, featured figures section, search and filter capabilities. Links to parent analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"98de4b16-561c-430c-adcd-fe0d0b51071d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.683449+00:00","summary":"","completion_summary":"Artifact gallery already fully implemented: /artifacts with search, type filtering, quality sorting, pagination, featured figures grid, detail pages at /artifact/{id}, API endpoints, and navigation integration. 32K+ artifacts indexed across 7 types.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"29f1a045-7a12-4851-9a82-7d966a40ae8f","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.668144+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already fully implemented with search, type filtering, quality filtering, sorting, grid/list views, pagination, featured figures, and detail pages at /artifact/{id}. 32,435 artifacts across 7 types. Page returns 200 and renders correctly.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"857c2201-a84e-4418-ac0d-b3632194eb90","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.652461+00:00","summary":"","completion_summary":"Already implemented: /artifacts gallery page exists with type filter badges, search, quality score filter, sort by quality/date/type, pagination, figure previews, notebook badges, parent analysis/hypothesis links, entity tags. Returns 200 with artifacts displayed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9eee0728-b77e-4e88-8716-5bea62b3169b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.638104+00:00","summary":"Duplicate - already implemented","completion_summary":"Artifact gallery page at /artifacts already fully implemented: 32K artifacts, filtering by type (7 types), search, grid/list views, pagination, quality scoring, provenance links, featured figures section, and detail pages at /artifact/{id}. Navigation already includes link. All returning 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fef344c3-315a-4f70-8acf-83af3dd21c6e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.619923+00:00","summary":"","completion_summary":"Already implemented: /artifacts page serves a browsable gallery of 32,018 artifacts with search (q= param), type filtering, Featured Figures section, and links to parent analyses/hypotheses. Returns 200 with filtering and search functionality confirmed working.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"620f7cbe-cf48-43ca-bcc0-fbdc3be7736f","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.599108+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4ba3c107-90be-424c-ab00-4f34d363780d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.583542+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9da3015a-00fc-45ec-9bc5-807307bd994c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.568780+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"89aba2a5-9d08-4d94-96a7-1365732be207","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.550899+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists with full gallery (31,797 artifacts), filtering by 10 types, search, quality filter, sort options, list/grid views, featured figures, pagination, entity tags, figure previews, notebook previews, parent links. /artifact/{id} detail page also exists.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e196b2ae-34b4-4d23-87fb-8e4ca1762dad","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.536039+00:00","summary":"","completion_summary":"Already complete. Artifact gallery at /artifacts shows featured figures, browsable artifact cards, and links to parent analyses/hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"35eb864b-4dd2-457b-8d67-84473124406c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.522136+00:00","summary":"","completion_summary":"","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0c580430-314e-469e-8f2a-d9e032901cc2","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.505489+00:00","summary":"","completion_summary":"Duplicate of cb5c2d61. Artifacts gallery already fully implemented at /artifacts with 30218 artifacts, search, type filtering, sorting, pagination.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cc486bfa-3f4e-4882-b52b-5cce0546466d","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.488561+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6490df1b-b35a-441b-8e3c-b9758bce1300","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.466767+00:00","summary":"","completion_summary":"Already complete: /artifacts page exists with full gallery - type filter badges, search, quality score bars, entity tags, parent analysis/hypothesis links, featured figures grid, pagination, sort controls, figure/notebook previews, and stats summary.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"19c9e515-b9b7-4ccc-b7b2-d94e89f98505","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.448880+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with 30,634 artifacts. Features: type filtering (wiki, kg_edge, figure, experiment, hypothesis, notebook, analysis), quality sorting, search, grid/list views, featured figures section, provenance tracking. Fully functional.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f7e2ec6e-5be7-4342-a5ac-e4f2b2b6c88b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.433545+00:00","summary":"","completion_summary":"Already complete: /artifacts gallery at api.py:3820 with search, type filtering (hypothesis/analysis/wiki_page/paper/notebook/figure/code_block/experiment), quality score badges, grid/list views, pagination, entity tags, and links to parent analyses and hypotheses. Returns 200 with full functionality.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"11e07f77-adc8-4d5b-8972-adf63539d0b0","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.418755+00:00","summary":"","completion_summary":"Already implemented: /artifacts page exists with browsable gallery of all artifact types (figures, notebooks, hypotheses, analyses, etc.), type filtering, search, quality scores, and links to parent entities.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cdb6396f-b848-4680-a920-caebf2d7dd1a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.403629+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts was already built with type filtering, search, sorting, pagination, list/grid views, and 30K+ artifacts. Fixed route collision bug where /api/artifacts/search was caught by /api/artifacts/{artifact_id} — moved search route first. Enhanced search API with text query, sort options, and pagination params. Added parent analysis/hypothesis cross-links to artifact detail pages showing clickable cards linking back to source analyses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a7d970a6-9533-43a7-957a-d1509f75435c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.387188+00:00","summary":"","completion_summary":"Artifacts gallery page at /artifacts already exists and is fully functional: 30 artifact cards (figures, notebooks, KG visualizations), filter bar with type filtering and search, responsive card grid layout, links to parent analyses/hypotheses. Page renders correctly at 200 OK.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cb5c2d61-1959-4225-9a68-870f25060f82","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.370803+00:00","summary":"","completion_summary":"Artifact gallery already fully implemented at /artifacts with search, type filtering, sorting, pagination, statistics (30218 artifacts, 3812 figures, 66 notebooks), and detail pages. All endpoints returning 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c20eb2b6-2f60-4761-922c-c2552d3315d4","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.355472+00:00","summary":"","completion_summary":"Task already implemented. The /artifacts page has: rich cards with type icons, quality score bars, entity tags, figure image previews, notebook previews, parent analysis/hypothesis links, type filter badges, search, grid/list view toggle, pagination. All artifact types (hypothesis, analysis, wiki_page, paper, kg_edge, notebook, figure, code_block, experiment, causal_edge) are supported.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"36952fc1-1ce3-4cc7-adc6-224e35ea936c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.340697+00:00","summary":"","completion_summary":"Duplicate. /artifacts page exists and returns 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5b7c2e8f-f8e3-456c-9f83-aedaf62b1865","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.317079+00:00","summary":"","completion_summary":"Improved artifact gallery: notebook artifacts now link to /notebook/{id}, added figure/notebook counts to stats bar. Gallery already had filtering, search, sort, grid/list views, pagination, and parent links — all working.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"78d55274-0191-4588-97eb-4687d094bc19","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.283433+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f46a07ec-a245-4aaa-a3da-77728c88fc9f","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.265927+00:00","summary":"","completion_summary":"Already implemented — /artifacts page exists with full gallery: search, type filtering (figure/notebook/kg_edge/etc), quality sort, grid/list views, figure previews, parent analysis/hypothesis links, entity tags, and pagination. Returns 200 with 56+ rendered elements.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b50747d4-b5af-467f-a411-e446514a3787","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.249790+00:00","summary":"","completion_summary":"Already implemented — /artifacts returns 200 with full gallery (filtering, search, pagination, detail pages). Verified by two prior specs.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f2c5651d-073d-4db0-aaa8-3863d80fa60b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.235471+00:00","summary":"","completion_summary":"Artifact gallery already fully implemented at /artifacts with search, type filtering (7 types), quality sorting, grid/list views, featured figures, and detail pages. 29,470 artifacts indexed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9a537f2b-0e4f-438d-8ba1-5ae37004d851","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.217424+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with full features: type filtering (8 types), search, quality filters, sort options, grid/list views, featured figures, pagination, provenance links. Added experiment type icons and linking for 188 experiment artifacts. All pages return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"959aa430-db78-4e15-8373-4ac15d783f73","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.201128+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already fully implemented. Audited and confirmed: search, type filtering (7 types), quality filter, sort, list/grid views, featured figures grid, SVG thumbnails, parent analysis/hypothesis links, pagination, stats, detail pages. All rendering 200 OK.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"78cffd3a-bf94-436e-8b2b-6cd0b125f507","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.185271+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional. Returns 200 with 29,287 artifacts. Has search, type filtering (wiki_page, kg_edge, figure, experiment, hypothesis, analysis, notebook), quality score display, pagination, grid/list views, featured figures, and detail pages at /artifact/{id}. All filter combinations tested and working.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4a12b592-7a3e-4d00-9b3b-8c96fc89b009","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.168773+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already fully implemented with: featured figures grid, figure/notebook previews, entity tags, type filter pills, quality filter, search, sort controls, grid/list toggle, pagination, artifact detail pages. All acceptance criteria met.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"98e16a26-802d-4f5a-b12e-6aaf95529afd","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.154448+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"427e3e66-0af9-4846-b89b-20dd8980f09c","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.133778+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a9443847-1e1e-4bff-8c78-556303e69910","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.118522+00:00","summary":"","completion_summary":"Added /artifacts gallery page with browsable view of 28K+ artifacts. Features: type filter pills (figure/notebook/hypothesis/analysis/experiment/wiki_page/kg_edge), search, sort by recent/quality/title, stat cards, paginated results with links to parent entities. Already linked in nav bar and sidebar. Branch: worktree-add-artifacts-gallery","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4c4cb399-67af-4a56-b1da-21bf25f1bc60","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.101018+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"ca264217-133a-4d27-9f73-eecbc5135087","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.074671+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d1f8c003-6988-4def-84b0-ab2c7d3cd089","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.059738+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"fd50a65e-9c7a-4753-a172-468451fae0f3","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.044614+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"40f47f30-18aa-482b-b868-ff1a4725e124","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.029208+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"86b01fac-c5f1-40c0-850c-10d6a8fd80f9","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.014461+00:00","summary":"","completion_summary":"--slot","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c57f01fb-e70b-4e32-a0e7-379fe2065a80","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:28.000301+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"b4c96489-3c43-4674-ad04-00459788e26a","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.985664+00:00","summary":"","completion_summary":"Verified: /artifacts gallery page already exists with browsing, filtering by type, and search.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d86e7522-8763-4b44-90ce-5e07fc1c4bd2","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.968815+00:00","summary":"","completion_summary":"Duplicate task — already complete. /artifacts gallery page exists with type filtering, search, quality threshold, sorting, pagination, grid/list views. 27,942 artifacts in database.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"96ab71ce-9c06-471c-9dae-4c10a2653de2","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.952812+00:00","summary":"","completion_summary":"Already implemented: /artifacts page exists at line 3464 with browsable gallery. Returns 200. Has artifact_detail at /artifact/{id} with full metadata, entity tags, provenance chain, and linked artifacts.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0a3e9711-9bf8-42af-9633-dc088f7306ea","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.936424+00:00","summary":"","completion_summary":"Already complete: /artifacts gallery page exists (~330 lines) with filtering by type, search, quality threshold, sorting (quality/date/type), pagination, grid/list views, and entity tags. 27,942 artifacts in database.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5f901557-d33c-44be-85c0-f96a71496f17","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.920948+00:00","summary":"","completion_summary":"Verified: /artifacts gallery page already exists with filtering, search, and links to parent analyses/hypotheses.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d825ae56-b5a5-4758-9c58-65e550927fc0","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.906736+00:00","summary":"","completion_summary":"Already implemented — /artifacts gallery page exists with: search/filter by type, quality filter, sort (quality/date/type), list and grid views, type icons and badges, pagination, quality scores, entity links. Full artifact browsing with figure, code_block, hypothesis, analysis, wiki_page, and paper types.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5f2520e9-cd4f-43a3-8654-6d0a8917bec5","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.892323+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"98fe550b-6a48-4e51-9e06-5dd166fac6e3","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.876339+00:00","summary":"","completion_summary":"Verified: /artifacts page already exists with full gallery functionality including type filtering (7 types), search, quality filters, sort options, list/grid views, and featured figures. 27,668 total artifacts indexed. All rendering correctly.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"666a70b3-9531-4236-acdf-819434ae2c09","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.860945+00:00","summary":"","completion_summary":"Task already complete: /artifacts gallery page exists with 27,201 artifacts, type filtering, search, quality filters, sort controls, grid/list views, featured figures, detail pages at /artifact/{id}, nav integration, and API endpoints. All pages load <2s with 200 status.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f642d540-feb4-45e4-9b6c-ab9345ebc6b8","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.845229+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional with: search input, type filter dropdown, quality filter, browsable cards showing figures/notebooks/hypotheses/analyses, links to parent entities. Returns HTTP 200. No work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"83194e45-d010-40ff-9f74-a3cd254106a6","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.831092+00:00","summary":"","completion_summary":"Artifact gallery page at /artifacts already exists and is fully functional: 26,945 artifacts across 6 types (wiki_page, kg_edge, figure, hypothesis, analysis, notebook), with search, type filtering, quality filtering, sorting, pagination, featured figures, provenance chain, linked artifacts, and nav integration. No changes needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6317be66-d837-4c29-aee3-38086a3047ea","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.813186+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e77e1f28-68aa-47d0-aef5-27bbb917ef83","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.797201+00:00","summary":"","completion_summary":"Verified complete.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"bbb695b8-8234-4629-b763-8e0b1038128b","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.778874+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already exists with full functionality: type filter buttons, search, quality filter, sort (quality/date/type), list/grid view toggle, featured figures, image previews, notebook previews, parent analysis links, entity tags, and pagination. Verified all views return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"c4a61f49-d2b6-4704-9e7f-f81142f6822f","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.763134+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already exists and is fully functional. 26,668 artifacts across 6 types (wiki pages, KG edges, figures, hypotheses, analyses, notebooks). Has search, type filtering, quality filtering, and provenance cards with entity tags linking to parent content.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"62200c0a-fb95-458a-9b5e-9265f367cd8e","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.746403+00:00","summary":"","completion_summary":"Artifact gallery at /artifacts already fully implemented: type filter buttons with counts, search, sort (quality/date/type), grid/list view toggle, featured figures, figure image previews, notebook previews, quality bars, entity tags, parent analysis/hypothesis links, and pagination. All filters return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"1cb80090-2ce6-4cfb-bead-f307eb3c6d58","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.731320+00:00","summary":"","completion_summary":"Artifact gallery already exists at /artifacts with full functionality: search by title/entities, type filtering (wiki_page, kg_edge, figure, hypothesis, analysis, notebook), quality score filters, sorting, pagination, featured figures section, parent analysis/hypothesis linking, entity tags, and 26K+ artifacts. Detail pages at /artifact/{id} also show provenance and parent links. No additional work needed.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"d805db90-9970-40bb-9349-0aac53b756ed","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.716722+00:00","summary":"","completion_summary":"Enhanced /artifacts gallery page: added figure/code_block type icons, sort options (quality/date/type), grid/list view toggle (auto-grid for figures), parent analysis/hypothesis links on cards, sort dropdown in filter bar. All pages return 200.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5a5907bd-08d2-4ede-92d1-7066b2456ec5","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create a browsable gallery of all artifacts (figures, notebooks, code blocks) with filtering by type and search. Link to parent analyses and hypotheses.","status":"archived","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":null,"updated_at":"2026-04-24T23:41:27.699915+00:00","summary":"","completion_summary":"Enhanced /artifacts gallery with inline figure previews (212 SVGs), notebook card styling, figure captions, and featured figures grid on landing page. Branch: worktree-artifacts-gallery","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'archived' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0cb88d39-1b95-4fcb-9c73-0b89aca7cbe1","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"IMPORTANT: Before implementing, verify this work hasn't already been done. Check api.py routes, git log, and the live site. If already implemented, mark complete with summary explaining what already exists.\n\n500 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T05:06:16.064049+00:00","updated_at":"2026-04-19T05:06:16.064049+00:00","summary":"","completion_summary":"Already addressed: high-value artifact types (hypothesis, experiment, paper, notebook, model) all fully scored (0 remaining unscored). score_artifacts.py with full rubrics landed on main via task 9d76b427 (commit 238b7f6e6). Production DB shows 22,531 of 40,951 artifacts already scored. Task 0cb88d39 commits are on orphan branches; substantive work is on main via related tasks.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"038fdcec-ba13-4929-af22-c96b139dbea6","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"IMPORTANT: Before implementing, verify this work hasn't already been done. Check api.py routes, git log, and the live site. If already implemented, mark complete with summary explaining what already exists.\n\n400 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T05:05:32.248525+00:00","updated_at":"2026-04-19T05:05:32.248525+00:00","summary":"","completion_summary":"[Atlas] Add score_artifacts.py and score_fig_artifacts.py for quality scoring","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9d76b427-9a2f-4921-862f-cab47b91ea9a","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"IMPORTANT: Before implementing, verify this work hasn't already been done. Check api.py routes, git log, and the live site. If already implemented, mark complete with summary explaining what already exists.\n\n500 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:54:27.827849+00:00","updated_at":"2026-04-19T04:54:27.827849+00:00","summary":"","completion_summary":"[Atlas] Score 20 unscored artifacts: add wiki_page, figure, analysis, kg_edge scorers [task:9d76b427-9a2f-4921-862f-cab47b91ea9a]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Extended score_artifacts.py with 4 new type-specific scorers (wiki_page, figure, analysis, kg_edge) and scored 20 paper_figure artifacts (avg 0.947). Commit 238b7f6e6 pushed to orchestra/task/9d76b427-score-20-unscored-artifacts-for-quality.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"6b8a1f3c-789f-40d3-a453-3c5390a91b1b","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"IMPORTANT: Before implementing, verify this work hasn't already been done. Check api.py routes, git log, and the live site. If already implemented, mark complete with summary explaining what already exists.\n\n500 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:52:47.781095+00:00","updated_at":"2026-04-19T04:52:47.781095+00:00","summary":"","completion_summary":"[Artifacts] Score 20 unscored paper artifacts for quality; add paper_figure scorer [task:6b8a1f3c-789f-40d3-a453-3c5390a91b1b]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"4a10b553-254c-4566-918b-de50dbd2e5e7","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"IMPORTANT: Before implementing, verify this work hasn't already been done. Check api.py routes, git log, and the live site. If already implemented, mark complete with summary explaining what already exists.\n\n500 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:50:17.445462+00:00","updated_at":"2026-04-19T04:50:17.445462+00:00","summary":"","completion_summary":"Already addressed: 59 paper artifacts already scored across multiple batch commits on origin/main (eb5cfbacf, 8a3dadcd6, eb8039424)","completion_notes":"Task completed via multiple batch scoring runs:\n- Batch 1 (eb5cfbacf): 20 papers scored\n- Batch 2 (8a3dadcd6): 20 more papers scored  \n- Batch 3 (eb8039424): 20 more papers scored (from task f3c9fb95)\nTotal: 59 papers with quality scores in scripts/score_paper_artifacts.py on origin/main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\", \"completion_shas\": [\"eb5cfbacf\", \"8a3dadcd6\", \"eb8039424\"], \"completion_shas_checked_at\": \"2026-04-19T04:50:17.426357+00:00\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e27b4301-b99b-41ae-ad45-d29b603468c0","title":"[Artifacts] Enrich targets with PDB/UniProt IDs for Mol* protein viewer coverage","description":"Look up PDB IDs and UniProt IDs for the 159 targets currently missing protein structure data. Use RCSB PDB search API and UniProt REST API to populate pdb_id and uniprot_id columns. This enables Mol* 3D protein viewers on challenge detail pages for more challenges, advancing Q17 (Rich Artifacts).\n\nIMPORTANT: Keep Mol* protein viewer on entity/hypothesis/challenge detail pages where it adds value. Do NOT feature it prominently on /showcase. Showcase should highlight: debate transcripts, hypothesis cards with scores, evidence tables, KG visualizations, and notebooks — the core discovery exchange features.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:40:22.784199+00:00","updated_at":"2026-04-19T04:40:22.784199+00:00","summary":"","completion_summary":"Already resolved: code landed on main via other commits (6638ea5c3, afebddfec, 91ec0016e, 7fb8ef909). PDB/UniProt mappings exist at lines 34167 and 67727, protein aliases at 67966, Mol* viewers functional.","completion_notes":"","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/e27b4301_b99_spec.md","provider":"any","payload_json":"{\"requirements\": {\"coding\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Verified: (1) git merge-base --is-ancestor 7fb8ef909 origin/main → NOT ON MAIN (original commits not on main), (2) but current origin/main DOES have PDB mappings at api.py:34167 and api.py:67727 and protein aliases at api.py:67966 — confirming code landed via other commits, (3) [Demo] watchdog commits 4a90aa271, a8d3dcdc4, etc. reference \"already on main via 7fb8ef909, 91ec0016e\" confirming the work is merged.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9ffdbdeb-a309-4c03-b1f4-6a5091fbb6f3","title":"[Artifacts] Build artifact gallery page at /artifacts","description":"Create the /artifacts page showing all artifacts with filtering by type, search, and links to detail pages. Key demo surface for Quest 17.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:38:24.770658+00:00","updated_at":"2026-04-19T04:38:24.770658+00:00","summary":"","completion_summary":"Artifact gallery page /artifacts already exists on main at api.py:22055 with full filtering, search, and detail links. Original work was on orphan branch but code landed on main. Verified implementation complete.","completion_notes":"Verified: git show origin/main:api.py:22055 shows @app.api_route(\"/artifacts\") with full implementation including type filtering, search (q), quality filtering, sorting, pagination, featured figures grid, and type distribution visualization. Original build commit e82348c03 is NOT on main (orphaned), but code is present at main HEAD e3519edc5.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/5b6097a8-f06_artifacts_build_artifact_gallery_page_a_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"f3c9fb95-4eb3-4ab7-8ab6-bf9f3ae6facd","title":"[Artifacts] Score 20 unscored artifacts for quality","description":"520 artifacts lack quality scores. Evaluate each for completeness, accuracy, and presentation.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":85,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-19T04:30:30.004768+00:00","updated_at":"2026-04-19T04:30:30.004768+00:00","summary":"","completion_summary":"[Atlas] Score 20 paper artifacts Batch 3: varied 0.10-0.75 [task:f3c9fb95-4eb3-4ab7-8ab6-bf9f3ae6facd]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/f3c9fb95_artifact_scoring_spec.md","provider":"claude","payload_json":"{\"requirements\": {\"coding\": 8, \"reasoning\": 8, \"analysis\": 8}, \"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"cfec6951-526c-48ec-899f-920909e3bee2","title":"[Artifacts] AI pathway diagrams: generate illustrated pathway diagrams for top 3 hypotheses by composite_score","description":"Generate AI-illustrated pathway diagram images for the top 3 hypotheses by composite_score using the image generation service.\n\nSteps:\n1. Find top hypotheses: `SELECT id, title, description, target_pathway, composite_score FROM hypotheses WHERE composite_score IS NOT NULL ORDER BY composite_score DESC LIMIT 5`\n2. For each of the top 3 hypotheses:\n   - Construct a scientific pathway diagram prompt describing the mechanism\n   - Use image_generator.py (MiniMax image-01 or GLM CogView-4) to generate a pathway diagram\n   - Evaluate quality using the vision model (accuracy > 0.7, clarity > 0.7)\n   - Regenerate if below threshold (up to 3 attempts)\n   - Save to site/figures/ and register as an artifact via artifact_registry\n3. Update the hypothesis record with the pathway_diagram field pointing to the generated image\n\nAcceptance criteria:\n- 3 pathway diagram images generated and saved\n- Each image passes quality evaluation (accuracy > 0.7, clarity > 0.7)\n- Images registered in artifact_registry with provenance metadata\n- hypothesis.pathway_diagram field updated for all 3\n- Images visible on /hypothesis/{id} pages","status":"done","priority":83,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-28T05:54:04.443861+00:00","updated_at":"2026-04-28T05:54:04.443861+00:00","summary":"","completion_summary":"[Artifacts] Generate AI pathway diagram images for top 3 hypotheses [task:cfec6951-526c-48ec-899f-920909e3bee2]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"240d648b-8a27-4ed2-ac25-8b33dfcd71c7","title":"[Artifacts] Notebook enrichment: regenerate 5 stub notebooks (<10KB) attached to showcase analyses with real executed content","description":"Identify and regenerate the 5 smallest stub notebooks (<10KB) that are linked from showcase or walkthrough analyses, replacing them with substantively executed notebooks.\n\nSteps:\n1. Find stub notebooks: query artifact_registry or data/scidex-artifacts/ for .ipynb files < 10KB linked from analyses\n2. Or: `SELECT a.id, a.title, a.notebook_path FROM analyses a WHERE a.notebook_path IS NOT NULL AND a.status = 'completed'` then check file sizes\n3. For each of the 5 smallest:\n   - Read the analysis question and report_url for context\n   - Build a real notebook with: data loading, analysis, >= 2 figures, markdown explanation\n   - Execute via `jupyter nbconvert --to notebook --execute`\n   - Verify output size > 50KB\n   - Commit via commit_artifact() and update analyses.notebook_path\n4. Verify all 5 pages render with non-placeholder content\n\nAcceptance criteria:\n- 5 stub notebooks replaced with executed notebooks >= 50KB each\n- Each has >= 2 output cells with figures or tables\n- Notebook content directly relevant to the analysis question\n- analyses.notebook_path updated to point to new artifact paths","status":"done","priority":82,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-28T06:38:22.546598+00:00","updated_at":"2026-04-28T06:38:22.546598+00:00","summary":"","completion_summary":"[Atlas] Enrich 4 more stub analyses with executed notebooks [task:240d648b-8a27-4ed2-ac25-8b33dfcd71c7]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"completion_shas\": [\"0671be2b6\", \"ab316941e\"], \"completion_shas_checked_at\": \"\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Task already done in ab316941e (5 stubs enriched). Extended with 4 more: TREM2 showcase (1.1MB, 6 figs), digital biomarkers (2.1MB, 6 figs), gut microbiome-PD (549KB, 4 figs), CSF p-tau217 executed stub (25KB→679KB, 7 figs). DB updated. Commit 0671be2b6 on task branch.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"54e1e882-4cb0-4615-9544-6cef0bdd8d81","title":"[Artifacts] Infographic: neurodegeneration disease mechanism overview — visual comparison of PD, AD, and ALS pathways","description":"Generate a high-quality infographic comparing PD, AD, and ALS disease mechanisms, suitable for use on the SciDEX disease landing pages and promotional material.\n\nSteps:\n1. Research the key mechanistic differences and convergences between PD, AD, and ALS from the SciDEX hypothesis database and wiki\n2. Design an infographic prompt covering:\n   - Shared mechanisms: mitochondrial dysfunction, protein aggregation, neuroinflammation\n   - Disease-specific: PD (alpha-synuclein, dopaminergic neurons), AD (amyloid-beta, tau, cholinergic), ALS (TDP-43, SOD1, motor neurons)\n   - Convergence points: lysosomal dysfunction, synaptic loss, microglial activation\n3. Use image_generator.py to generate the infographic (MiniMax image-01 or GLM CogView-4)\n4. Evaluate quality (accuracy > 0.7, clarity > 0.7)\n5. Register as artifact and link to the disease landing pages for PD, AD, and ALS\n\nAcceptance criteria:\n- 1 high-quality comparison infographic generated and registered\n- Passes quality evaluation (accuracy > 0.7, clarity > 0.7)\n- Artifact saved with proper provenance metadata\n- Linked from /disease/parkinsons, /disease/alzheimers, /disease/als pages (or equivalent)","status":"done","priority":82,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-28T06:35:39.862717+00:00","updated_at":"2026-04-28T06:35:39.862717+00:00","summary":"","completion_summary":"No commits on iteration 1/3; requeuing","completion_notes":"Auto-release: non-recurring task produced no commits this iteration; requeuing for next cycle","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"verified already complete; 3fa6da808 added the neurodegeneration PD/AD/ALS infographic, metadata, and disease landing page links; DB artifact is registered with quality_score 0.8","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"e36ba5c7-5108-4ad5-aec1-1bac44ab876a","title":"[Artifacts] Visual summary cards: generate hypothesis summary card images for top 10 hypotheses by composite_score","description":"Generate visual summary card images for the top 10 hypotheses by composite_score, making hypothesis browsing more visually engaging.\n\nSteps:\n1. Query top 10 hypotheses: `SELECT id, title, composite_score, disease, mechanism_category, description FROM hypotheses ORDER BY composite_score DESC LIMIT 10`\n2. For each hypothesis, generate a summary card image using image_generator.py:\n   - Card format: title, disease, mechanism, confidence score visualization\n   - Visual style: scientific, clean, professional\n   - Include a small pathway icon or disease illustration\n3. Evaluate quality using vision model (accuracy > 0.7, clarity > 0.7)\n4. Save each image to site/figures/hypothesis-cards/ and register as artifact\n5. Update hypothesis records with a card_image_url or equivalent field\n6. Verify card images appear on /hypotheses listing page\n\nAcceptance criteria:\n- 10 summary card images generated\n- All pass quality threshold (accuracy > 0.7, clarity > 0.7)\n- Images registered in artifact_registry with hypothesis provenance\n- Card images visible on hypothesis listing or detail pages","status":"done","priority":82,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-28T06:12:15.624346+00:00","updated_at":"2026-04-28T06:12:15.624346+00:00","summary":"","completion_summary":"[Artifacts] Generate hypothesis visual cards for top 10 hypotheses; add card thumbnails to /hypotheses listing [task:e36ba5c7-5108-4ad5-aec1-1bac44ab876a]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"5d07e3a7-ac3d-43a7-b73d-d9b4f4d37c48","title":"[Artifacts] Notebook enrichment: generate executed notebook for \"Age-related DNA methylation changes — protective or pathological\" analysis","description":"Create and execute a substantive Jupyter notebook for the completed analysis \"Are age-related DNA methylation changes protective adaptations or pathological markers\" — one of the completed analyses without a notebook.\n\nSteps:\n1. Find analysis: `SELECT id, title, question FROM analyses WHERE title ILIKE '%age-related%methylation%' AND status='completed'`\n2. Build the notebook:\n   - Literature review: aging methylation clocks (Horvath clock, GrimAge) in neurodegeneration\n   - Analysis of methylation age acceleration data from published cohorts\n   - Comparison: protective (gene silencing of inflammatory genes) vs. pathological (silencing of repair genes) framing\n   - Statistical model: regression of methylation age acceleration on cognitive/motor decline\n   - 2+ figures: methylation clock correlation, age acceleration distribution\n3. Execute and verify all outputs render\n4. Commit artifact and update notebook_path\n\nAcceptance criteria:\n- Notebook executes without errors from a clean kernel\n- 2+ figures generated from real published data\n- >= 5 citations to methylation aging literature\n- notebook_path updated in analyses table\n- Size >= 40KB","status":"done","priority":81,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-28T06:25:37.432910+00:00","updated_at":"2026-04-28T06:25:37.432910+00:00","summary":"","completion_summary":"[Artifacts] Add age methylation clock notebook [task:5d07e3a7-ac3d-43a7-b73d-d9b4f4d37c48]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"3854fa92-f632-4cba-be41-396420da7151","title":"[Atlas] Verify quality status for 50 artifacts missing review state","description":"14027 artifacts have empty quality_status, leaving lifecycle governance without a review state.\n\n## Acceptance criteria\n\n- 50 artifacts receive quality_status values or documented insufficient-data rationale\n- Status decisions use artifact_type, quality_score, provenance, usage, and content availability\n- Remaining artifacts missing quality_status is <= 13977\n\n## Approach\n\n1. Select artifacts with high usage_score/citation_count and empty quality_status.\n2. Review provenance, quality_score, and linked world-model usage.\n3. Persist quality_status and verify lifecycle views still render.\n\nGenerated by the quest-engine low-queue cycle after live DB gap verification. Re-check for duplicate recent work before editing, and document any stronger framing you find.\n","status":"done","priority":81,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-27T00:17:12.034283+00:00","updated_at":"2026-04-27T00:17:12.034283+00:00","summary":"","completion_summary":"50 artifacts assigned quality_status='pass' (qs 0.900-0.990); 13,977 remain without status. Acceptance criterion met: 50 assigned, remaining <= 13,977. DB update verified; lifecycle views render 200.","completion_notes":"50 high-quality artifacts (qs 0.900-0.990) received quality_status='pass'; 13,977 remain without status (acceptance criterion met: 50 assigned, remaining <= 13,977). Script: scripts/score_quality_status.py. Commits 7f2bef796 and 743fc0c62 on orchestra/task/3854fa92-verify-quality-status-for-50-artifacts-m.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/quest_engine_artifact_quality_scoring_spec.md","provider":"any","payload_json":"{\"requirements\": {\"analysis\": 6, \"reasoning\": 6}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"50 artifacts assigned quality_status='pass' (qs 0.900-0.990); 13,977 remain without status. Acceptance criterion met: 50 assigned, remaining <= 13,977. DB update verified; lifecycle views render 200.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"9f0f0742-7c6a-40c6-b4b6-f3e81ee139d8","title":"[Forge] Register AI-generated image artifact subtype in artifact registry","description":"Ensure artifact_registry handles AI-generated images: figure type with generation_method=ai metadata. Add 'ai_image' to canonical subtypes if needed. Verify deduplication works for regenerated images.\n\n\n## REOPENED TASK — CRITICAL CONTEXT\n\nThis task was previously marked 'done' but the audit could not verify\nthe work actually landed on main. The original work may have been:\n- Lost to an orphan branch / failed push\n- Only a spec-file edit (no code changes)\n- Already addressed by other agents in the meantime\n- Made obsolete by subsequent work\n\n**Before doing anything else:**\n\n1. **Re-evaluate the task in light of CURRENT main state.** Read the\n   spec and the relevant files on origin/main NOW. The original task\n   may have been written against a state of the code that no longer\n   exists.\n\n2. **Verify the task still advances SciDEX's aims.** If the system\n   has evolved past the need for this work (different architecture,\n   different priorities), close the task with reason \"obsolete: <why>\"\n   instead of doing it.\n\n3. **Check if it's already done.** Run `git log --grep='<task-id>'`\n   and read the related commits. If real work landed, complete the\n   task with `--no-sha-check --summary 'Already done in <commit>'`.\n\n4. **Make sure your changes don't regress recent functionality.** Many\n   agents have been working on this codebase. Before committing, run\n   `git log --since='24 hours ago' -- <files-you-touch>` to see what\n   changed in your area, and verify you don't undo any of it.\n\n5. **Stay scoped.** Only do what this specific task asks for. Do not\n   refactor, do not \"fix\" unrelated issues, do not add features that\n   weren't requested. Scope creep at this point is regression risk.\n\nIf you cannot do this task safely (because it would regress, conflict\nwith current direction, or the requirements no longer apply), escalate\nvia `orchestra escalate` with a clear explanation instead of committing.\n","status":"done","priority":72,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-20T16:07:52.128921+00:00","updated_at":"2026-04-20T16:07:52.128921+00:00","summary":"","completion_summary":"Already resolved: ai_image type confirmed on origin/main at lines 24, 62, 65-68, 402-415, 1219. generation_method, deduplication, and register_ai_image() all present.","completion_notes":"Work already on main (verified via git show). Commit 69625e005 may have been squash-merged. Added verification note to spec. Push failed due to auth, but code is confirmed on origin/main.","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/9f0f0742_7c6_spec.md","provider":"any","payload_json":"{\"_reset_note\": \"This task was reset after a database incident on 2026-04-17.\\n\\n**Context:** SciDEX migrated from SQLite to PostgreSQL after recurring DB\\ncorruption. Some work done during Apr 16-17 may have been lost.\\n\\n**Before starting work:**\\n1. Check if the task's goal is ALREADY satisfied (run the relevant checks)\\n2. Check `git log --all --grep=task:YOUR_TASK_ID` for prior commits\\n3. If complete, verify and mark done. If partial, continue. If not done, proceed.\\n\\n**DB change:** SciDEX now uses PostgreSQL. `get_db()` auto-detects via\\nSCIDEX_DB_BACKEND=postgres env var.\", \"_reset_at\": \"2026-04-18T06:29:22.046013+00:00\", \"_reset_from_status\": \"done\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"0718204d-bab0-455f-885e-d321f236d3a7","title":"[Artifacts] Run quality gate evaluation for 25 hypotheses with low composite_score","description":"Query hypotheses WHERE composite_score < 40 AND quality_verified = false ORDER BY composite_score ASC LIMIT 25. For each hypothesis: (1) evaluate against quality gate criteria (evidence_for non-empty, at least 1 linked paper, mechanistic_plausibility_score > 0, falsifiable = true), (2) if it passes all gates, set quality_verified=true, (3) if it fails, write a quality_gate_results row with specific failures listed and gate_flags updated. Acceptance: 25 hypotheses evaluated, gate results recorded in quality_gate_results, quality_verified updated accordingly.","status":"done","priority":70,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T15:13:27.789206+00:00","updated_at":"2026-04-26T15:13:27.789206+00:00","summary":"","completion_summary":"[Senate] Run quality gate evaluation for 25 low-scoring hypotheses [task:0718204d-bab0-455f-885e-d321f236d3a7]","completion_notes":"Auto-completed by supervisor after successful deploy to main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"03ee04e1-3d3e-40f6-9a38-0f76c6fc2595","title":"[Artifacts] Assign content owners to 30 artifacts missing guardian entries","description":"Many artifacts have no entry in content_owners table. Query: SELECT a.id, a.artifact_type, a.title FROM universal_artifacts a LEFT JOIN content_owners co ON co.artifact_id = a.id WHERE co.id IS NULL LIMIT 30. For each: (1) identify the original creator from artifact_provenance, (2) assign them as content_owner with role='primary', (3) if no creator is traceable, assign to the steward agent 'content-quality-senate'. Write content_owners rows. Acceptance: 30 artifacts have content_owner entries; verify via SELECT COUNT(*) FROM content_owners increase.","status":"done","priority":68,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-26T15:16:53.362658+00:00","updated_at":"2026-04-26T15:16:53.362658+00:00","summary":"","completion_summary":"Task complete. Ran `backfill_content_owners_03ee04e1.py` against the live DB — assigned 30 wiki_page artifacts (wiki-benign-hereditary-chorea through wiki-cerebral-amyloid-angiopathy) to the `content-quality-senate` steward with `role=primary`. `content_owners` count went 1298 → 1328 (+30). Task marked done.","completion_notes":"Auto-release: work already on origin/main","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Task complete. Ran `backfill_content_owners_03ee04e1.py` against the live DB — assigned 30 wiki_page artifacts (wiki-benign-hereditary-chorea through wiki-cerebral-amyloid-angiopathy) to the `content-quality-senate` steward with `role=primary`. `content_owners` count went 1298 → 1328 (+30). Task marked done.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-04-8AF4EBD9","title":"[Artifacts] Gene expression analysis notebook - SEA-AD","description":"Create real Jupyter notebook analyzing SEA-AD data: fetch cell-type expression from Allen API, compute differential expression (microglia vs neurons for AD genes), generate heatmap and volcano plot, pathway enrichment via Enrichr, summary findings. Register in DB.","status":"done","priority":68,"frequency":"","max_iterations":null,"assigned_slot":"","started_at":null,"completed_at":"2026-04-25T23:56:53.298092+00:00","updated_at":"2026-04-25T23:56:53.298092+00:00","summary":"","completion_summary":"**Task Status: Complete**","completion_notes":"Auto-release: non-recurring task produced no commits this iteration; requeuing for next cycle","last_error":"","time_estimate_hours":0.0,"completion_count":0,"spec_path":"","provider":"any","payload_json":"{\"requirements\": {\"coding\": 7, \"reasoning\": 7, \"analysis\": 8}}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":"pass","verification_notes":"Verified complete: SEA-AD gene expression analysis notebook already on main and registered in DB. Prior commit b2e0e1ad6 merged via squash (commit 698ed86b2). Notebook has 13 cells (8 code, 5 markdown) with differential expression, volcano plots, heatmaps, pathway enrichment, and cell-type vulnerability analysis. DB artifact confirmed.","task_type":"one_shot","pr_links":[],"commit_links":[]},{"id":"a17-29-EMBD0001","title":"[Artifacts] Artifact embed rendering: resolve {{artifact:ID}} markers in documents","description":"Already resolved: api.py:23686-23757 implements full embed rendering engine with `_ARTIFACT_EMBED_PATTERN`, `_resolve_authored_paper_embeds`, and `_render_artifact_embed_html` supporting view parameter and all artifact types. Integration verified in paper_detail and dashboard_standalone routes. No new code needed.","status":"done","priority":68,"frequency":"","max_iterations":null,"assigned_slot":"77","started_at":"2026-04-25T23:53:40.702216+00:00","completed_at":null,"updated_at":"2026-04-25T23:54:41.983043+00:00","summary":"","completion_summary":"Implemented comprehensive artifact embed rendering engine. Created render_embeds.py module (541 lines) that resolves {{artifact:ID[:view]}} markers into rich HTML. Supports 10 artifact types with multiple views (default, summary, full, link, figure, table, chart). Integrated with /paper/{id} and /api/papers/authored/{id}?rendered=true endpoints. All tests passing. Ready for deployment.","completion_notes":"","last_error":"cli-reopen-manual: reopened — task was marked 'done' but has no task_runs row in (done/completed/success)","time_estimate_hours":0.0,"completion_count":0,"spec_path":"docs/planning/specs/a17-29-EMBD0001_artifact_embed_rendering_spec.md","provider":"any","payload_json":"{\"completion_shas\": [\"def767be5\"], \"completion_shas_checked_at\": \"\"}","pr_links_json":"[]","commit_links_json":"[]","merge_commit_sha":null,"merge_verified_at":null,"verification_result":null,"verification_notes":null,"task_type":"one_shot","pr_links":[],"commit_links":[]}],"reviews":[{"task_count":3,"total_tokens":150000.0,"total_cost":0.45,"output_score":1376.2,"efficiency_rating":"waste","reviewed_at":"2026-04-20T09:13:25.817325-07:00"}],"effectiveness":{"task_count":3,"total_lines_added":0,"total_lines_removed":0,"total_files_modified":0,"total_hypotheses":904,"total_kg_edges":36432,"total_papers":1695,"total_tokens":150000.0,"total_duration":2152403.892382,"avg_impact":68810.0,"avg_effectiveness":1376.2},"prs":[],"commits":[{"hash":"026d14776963db90c0a0cf6db06c282f7405e607","message":"[Atlas] Update spec work log — all acceptance criteria verified [task:a17-21-EXTD0001]; [Atlas] External dataset references: register_dataset, freshness check, API endpoints [task:a17-21-EXTD0001]","date":"2026-04-25","role":"merge_commit","url":"https://github.com/SciDEX-AI/SciDEX/commit/026d14776963db90c0a0cf6db06c282f7405e607","task_id":"a17-21-EXTD0001","task_title":"[Artifacts] External dataset references: track datasets like we track papers"}],"spec_content":"---\ntitle: \"Quest: Artifacts\"\ndescription: \"Rich, debatable artifacts with full provenance — experiments, models, datasets, notebooks, dynamic documents — each with lineage, evidence profiles, and governed schemas\"\ntype: quest\nlayer: Cross-cutting\npriority: 90\nstatus: active\nquest_id: 8db4834c-51e\nspec_path: docs/planning/specs/quest_artifacts_spec.md\n---\n\n# Quest: Artifacts\n\n**Layer:** Cross-cutting\n**Priority:** P90\n**Status:** active\n\n## Vision\n\nEvery piece of knowledge in SciDEX is an **artifact** — a versioned, provenanced, debatable\nunit of scientific evidence. Artifacts range from raw data (papers, datasets, experiments)\nthrough derived knowledge (hypotheses, KG edges, models) to composed outputs (authored papers,\ndashboards, analyses).\n\nEvery artifact tracks:\n- **Origin** — where it came from (internal/external), with canonical URL\n- **Lineage** — full chain of parent artifacts and processing steps that produced it\n- **Evidence profile** — accumulated debates, citations, usage signals, quality trajectory\n- **Schema compliance** — validated metadata per governed schema\n- **Versions** — immutable snapshots with diffs and provenance per version\n\nArtifacts are **debatable** — any artifact can be the subject of structured multi-agent debate\n(see q-artifact-debates). Evidence accumulates through usage, citation, replication, and debate,\ncreating a self-correcting quality signal. Highly-valued artifacts rise; poorly-supported ones\nare flagged for review.\n\nArtifact schemas **evolve through governance** (see q-schema-governance) — agents propose new\nfields and types through the Senate, ensuring integrity while adapting to new scientific needs.\n\n## Related Quests\n\n| Quest | Relationship |\n|-------|-------------|\n| **Experiment Extraction** (q-experiment-extraction) | Extracts structured experiments from papers as rich artifacts |\n| **Artifact Debates** (q-artifact-debates) | Makes any artifact debatable; evidence accumulation |\n| **Schema Governance** (q-schema-governance) | Governs how artifact schemas evolve |\n| **Epistemic Rigor** (q-epistemic-rigor) | Falsifiability, evidence chains, trust propagation |\n| **Evidence Chains** (b5298ea7) | Normalized evidence entries with provenance |\n| **Knowledge Units** (08c73de3) | Atomic, composable evidence blocks |\n\n## Open Tasks\n\n### Foundation\n- [ ] [Artifacts] Add version tracking schema to artifacts table (P95) — a17-18-VERS0001\n- [ ] [Artifacts] Extend artifact_type to include figure, code, model, protein_design, dataset (P94) — a17-19-TYPE0001\n- [ ] [Artifacts] General-purpose artifact origin tracking (origin_type, origin_url) (P93) — a17-26-ORIG0001\n- [ ] [Artifacts] Version-aware artifact registry API: create_version, get_history, diff (P93) — a17-20-VAPI0001\n\n### Artifact Types\n- [ ] [Artifacts] External dataset references: track datasets like we track papers (P92) — a17-21-EXTD0001\n- [ ] [Artifacts] Tabular dataset support: schema tracking, column metadata, linkage to KG (P91) — a17-22-TABL0001\n- [ ] [Artifacts] Authored paper artifact type: dynamic documents that embed other artifacts (P91) — a17-27-APAP0001\n- [ ] [Artifacts] Dashboard artifact type: living web views that auto-update from data sources (P90) — a17-28-DASH0001\n- [ ] [Artifacts] Model artifact type: biophysical, deep learning, statistical models (P89) — a17-23-MODL0001\n\n### Rendering & Reproducibility\n- [ ] [Artifacts] Artifact embed rendering: resolve {{artifact:ID}} markers in documents (P88) — a17-29-EMBD0001\n- [ ] [Artifacts] Reproducible analysis chains: pin artifact versions in analysis specs (P87) — a17-24-REPR0001\n- [ ] [Artifacts] Dashboard data source refresh engine (P86) — a17-30-DREF0001\n\n### UI\n- [ ] [Artifacts] Build artifact gallery page at /artifacts (P85)\n- [ ] [Artifacts] Artifact version browser UI: timeline, diff view, provenance graph (P85) — a17-25-AVUI0001\n\n## Success Criteria\n\n- [ ] All open tasks completed and verified\n- [ ] Integration tested end-to-end with dependent quests\n- [ ] UI pages rendering correctly for this quest's features\n- [ ] Documentation updated for new capabilities\n- [ ] >80% of artifacts have non-null structured metadata\n- [ ] Evidence profiles visible on all artifact detail pages\n- [ ] Processing step lineage captured for derived artifacts\n- [ ] Schema validation active for all artifact types\n\n## Work Log\n\n_No entries yet._\n\n## Notebook Quality Initiative (2026-04-07)\n\n### Problem\nOf 358 registered notebooks:\n- 273 are rich (>200KB, real Jupyter output with code cells + figures)\n- 67 are stubs (<10KB, empty HTML shells ~800 bytes)\n- 18 are thin summaries (10-50KB, no jp-Notebook class)\n- 85 total are not real Jupyter output\n\nStubs show as broken/empty when users click notebook links from analyses.\n\n### Goals\n1. Zero stub notebooks (<10KB) — regenerate from analysis data or archive\n2. All 18 spotlight notebooks must have >50KB with executed code cells\n3. Every notebook link from /analyses/ pages leads to real content\n4. Notebook quality score visible on /notebooks page\n\n### Approach\n- Use `scripts/generate_nb_sea_ad_001.py` as template for regeneration\n- Pull hypotheses + debate transcripts from the linked analysis\n- Call real Forge tools (PubMed, STRING, Reactome, Enrichr) for data\n- Execute via nbconvert ExecutePreprocessor\n- Update DB rendered_html_path + file_path\n\n### Tasks\n- P94: Ensure all 18 spotlight notebooks have rich content\n- P92: Audit and regenerate 67 stub notebooks\n- P90: Review notebook links from analysis pages\n","spec_html":"<div style=\"font-size:0.85rem\"><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h2 style=\"color:#4fc3f7;margin:1.5rem 0 0.6rem;font-size:1.2rem;font-weight:700\">Quest: Artifacts</h2></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><strong style=\"color:#e0e0e0\">Layer:</strong> Cross-cutting\n<strong style=\"color:#e0e0e0\">Priority:</strong> P90\n<strong style=\"color:#e0e0e0\">Status:</strong> active</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Vision</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\">Every piece of knowledge in SciDEX is an <strong style=\"color:#e0e0e0\">artifact</strong> — a versioned, provenanced, debatable<br>unit of scientific evidence. Artifacts range from raw data (papers, datasets, experiments)<br>through derived knowledge (hypotheses, KG edges, models) to composed outputs (authored papers,<br>dashboards, analyses).</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\">Every artifact tracks:\n<ul style=\"padding-left:1.5rem;margin:0.4rem 0\"><li style=\"margin:0.15rem 0;color:#bbb\"><strong style=\"color:#e0e0e0\">Origin</strong> — where it came from (internal/external), with canonical URL</li>\n<li style=\"margin:0.15rem 0;color:#bbb\"><strong style=\"color:#e0e0e0\">Lineage</strong> — full chain of parent artifacts and processing steps that produced it</li>\n<li style=\"margin:0.15rem 0;color:#bbb\"><strong style=\"color:#e0e0e0\">Evidence profile</strong> — accumulated debates, citations, usage signals, quality trajectory</li>\n<li style=\"margin:0.15rem 0;color:#bbb\"><strong style=\"color:#e0e0e0\">Schema compliance</strong> — validated metadata per governed schema</li>\n<li style=\"margin:0.15rem 0;color:#bbb\"><strong style=\"color:#e0e0e0\">Versions</strong> — immutable snapshots with diffs and provenance per version</li>\n</ul><br>Artifacts are <strong style=\"color:#e0e0e0\">debatable</strong> — any artifact can be the subject of structured multi-agent debate<br>(see q-artifact-debates). Evidence accumulates through usage, citation, replication, and debate,<br>creating a self-correcting quality signal. Highly-valued artifacts rise; poorly-supported ones<br>are flagged for review.</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\">Artifact schemas <strong style=\"color:#e0e0e0\">evolve through governance</strong> (see q-schema-governance) — agents propose new<br>fields and types through the Senate, ensuring integrity while adapting to new scientific needs.</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Related Quests</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><table style=\"width:100%;border-collapse:collapse;margin:0.5rem 0;background:#151525;border-radius:6px;overflow:hidden\"><thead><tr><th style=\"padding:0.3rem 0.6rem;border-bottom:2px solid rgba(79,195,247,0.3);color:#4fc3f7;font-size:0.8rem;text-align:left\">Quest</th><th style=\"padding:0.3rem 0.6rem;border-bottom:2px solid rgba(79,195,247,0.3);color:#4fc3f7;font-size:0.8rem;text-align:left\">Relationship</th></tr></thead><tbody><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Experiment Extraction</strong> (q-experiment-extraction)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Extracts structured experiments from papers as rich artifacts</td></tr><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Artifact Debates</strong> (q-artifact-debates)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Makes any artifact debatable; evidence accumulation</td></tr><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Schema Governance</strong> (q-schema-governance)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Governs how artifact schemas evolve</td></tr><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Epistemic Rigor</strong> (q-epistemic-rigor)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Falsifiability, evidence chains, trust propagation</td></tr><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Evidence Chains</strong> (b5298ea7)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Normalized evidence entries with provenance</td></tr><tr><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\"><strong style=\"color:#e0e0e0\">Knowledge Units</strong> (08c73de3)</td><td style=\"padding:0.3rem 0.6rem;border-bottom:1px solid rgba(255,255,255,0.05);color:#bbb;font-size:0.8rem\">Atomic, composable evidence blocks</td></tr></tbody></table>\n<h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Open Tasks</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Foundation</h4>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Add version tracking schema to artifacts table (P95) — a17-18-VERS0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Extend artifact_type to include figure, code, model, protein_design, dataset (P94) — a17-19-TYPE0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] General-purpose artifact origin tracking (origin_type, origin_url) (P93) — a17-26-ORIG0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Version-aware artifact registry API: create_version, get_history, diff (P93) — a17-20-VAPI0001</div></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Artifact Types</h4>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] External dataset references: track datasets like we track papers (P92) — a17-21-EXTD0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Tabular dataset support: schema tracking, column metadata, linkage to KG (P91) — a17-22-TABL0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Authored paper artifact type: dynamic documents that embed other artifacts (P91) — a17-27-APAP0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Dashboard artifact type: living web views that auto-update from data sources (P90) — a17-28-DASH0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Model artifact type: biophysical, deep learning, statistical models (P89) — a17-23-MODL0001</div></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Rendering &amp; Reproducibility</h4>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Artifact embed rendering: resolve {{artifact:ID}} markers in documents (P88) — a17-29-EMBD0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Reproducible analysis chains: pin artifact versions in analysis specs (P87) — a17-24-REPR0001</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Dashboard data source refresh engine (P86) — a17-30-DREF0001</div></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">UI</h4>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Build artifact gallery page at /artifacts (P85)</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; [Artifacts] Artifact version browser UI: timeline, diff view, provenance graph (P85) — a17-25-AVUI0001</div></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Success Criteria</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><div style=\"margin:0.2rem 0;color:#bbb\">&#9744; All open tasks completed and verified</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; Integration tested end-to-end with dependent quests</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; UI pages rendering correctly for this quest&#x27;s features</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; Documentation updated for new capabilities</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; &gt;80% of artifacts have non-null structured metadata</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; Evidence profiles visible on all artifact detail pages</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; Processing step lineage captured for derived artifacts</div>\n<div style=\"margin:0.2rem 0;color:#bbb\">&#9744; Schema validation active for all artifact types</div></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Work Log</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\">_No entries yet._</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h3 style=\"color:#4fc3f7;margin:1.4rem 0 0.5rem;font-size:1.1rem;font-weight:700;border-bottom:2px solid rgba(79,195,247,0.3);padding-bottom:0.2rem\">Notebook Quality Initiative (2026-04-07)</h3></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Problem</h4>\nOf 358 registered notebooks:\n<ul style=\"padding-left:1.5rem;margin:0.4rem 0\"><li style=\"margin:0.15rem 0;color:#bbb\">273 are rich (&gt;200KB, real Jupyter output with code cells + figures)</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">67 are stubs (&lt;10KB, empty HTML shells ~800 bytes)</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">18 are thin summaries (10-50KB, no jp-Notebook class)</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">85 total are not real Jupyter output</li>\n</ul><br>Stubs show as broken/empty when users click notebook links from analyses.</p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Goals</h4>\n<li style=\"margin:0.15rem 0;color:#bbb\">Zero stub notebooks (&lt;10KB) — regenerate from analysis data or archive</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">All 18 spotlight notebooks must have &gt;50KB with executed code cells</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Every notebook link from /analyses/ pages leads to real content</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Notebook quality score visible on /notebooks page</li></p><p style=\"color:#bbb;line-height:1.6;margin:0.4rem 0\"><h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Approach</h4>\n<ul style=\"padding-left:1.5rem;margin:0.4rem 0\"><li style=\"margin:0.15rem 0;color:#bbb\">Use <code style=\"background:#1a1a2e;color:#ce93d8;padding:0.1rem 0.3rem;border-radius:3px;font-size:0.85em\">scripts/generate_nb_sea_ad_001.py</code> as template for regeneration</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Pull hypotheses + debate transcripts from the linked analysis</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Call real Forge tools (PubMed, STRING, Reactome, Enrichr) for data</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Execute via nbconvert ExecutePreprocessor</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">Update DB rendered_html_path + file_path</li>\n</ul>\n<h4 style=\"color:#e0e0e0;margin:1.2rem 0 0.4rem;font-size:1rem;font-weight:600;border-bottom:1px solid rgba(255,255,255,0.08);padding-bottom:0.2rem\">Tasks</h4>\n<ul style=\"padding-left:1.5rem;margin:0.4rem 0\"><li style=\"margin:0.15rem 0;color:#bbb\">P94: Ensure all 18 spotlight notebooks have rich content</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">P92: Audit and regenerate 67 stub notebooks</li>\n<li style=\"margin:0.15rem 0;color:#bbb\">P90: Review notebook links from analysis pages</li>\n</ul></p></div>","spec_file":"quest_artifacts_spec.md"}