EMBED-005: Artifact Semantic Search #128

Closed
opened 2026-04-11 02:51:30 +00:00 by Mark · 23 comments
Owner

Overview

All artifacts (outputs, files, generated content) stored with embeddings for semantic discovery.

Problem

Artifacts are stored but not searchable by meaning. Finding related work requires exact metadata matching.

Solution

Every artifact gets embedded on creation:

artifact = generate_essay(...)
artifact.embedding = embed(artifact.content)
store_artifact(artifact)

Components

Artifact Embedding

  • Automatic embedding on artifact creation
  • Content extraction (text from PDF, code from files, etc.)
  • Multi-modal support (image descriptions via vision model)

Discovery

  • Semantic search across all artifacts
  • Similar artifact recommendations
  • Artifact lineage via vector similarity

Integration

  • Writers find related previous essays
  • Researchers build on prior findings
  • Evolution system compares artifacts

API

class ArtifactStore:
    def store(self, artifact: Artifact) -> str
    def search(self, query: str, artifact_type: str = None, top_k: int = 10) -> list[Artifact]
    def find_similar(self, artifact_id: str, top_k: int = 5) -> list[Artifact]

Use Cases

  • Writer: "Find me articles similar to this draft"
  • Researcher: "What research has been done on X?"
  • Evolution: "Compare this result to previous attempts"

Acceptance Criteria

  • Artifact creation triggers embedding
  • Semantic search returns relevant artifacts
  • Similarity search finds related work
  • Search latency <200ms for 10k artifacts

Priority

MEDIUM - Enables knowledge accumulation

  • EMBED-001: Embedding Engine Infrastructure
  • EMBED-003: RAG System
## Overview All artifacts (outputs, files, generated content) stored with embeddings for semantic discovery. ## Problem Artifacts are stored but not searchable by meaning. Finding related work requires exact metadata matching. ## Solution Every artifact gets embedded on creation: ```python artifact = generate_essay(...) artifact.embedding = embed(artifact.content) store_artifact(artifact) ``` ## Components ### Artifact Embedding - [ ] Automatic embedding on artifact creation - [ ] Content extraction (text from PDF, code from files, etc.) - [ ] Multi-modal support (image descriptions via vision model) ### Discovery - [ ] Semantic search across all artifacts - [ ] Similar artifact recommendations - [ ] Artifact lineage via vector similarity ### Integration - [ ] Writers find related previous essays - [ ] Researchers build on prior findings - [ ] Evolution system compares artifacts ## API ```python class ArtifactStore: def store(self, artifact: Artifact) -> str def search(self, query: str, artifact_type: str = None, top_k: int = 10) -> list[Artifact] def find_similar(self, artifact_id: str, top_k: int = 5) -> list[Artifact] ``` ## Use Cases - Writer: "Find me articles similar to this draft" - Researcher: "What research has been done on X?" - Evolution: "Compare this result to previous attempts" ## Acceptance Criteria - [ ] Artifact creation triggers embedding - [ ] Semantic search returns relevant artifacts - [ ] Similarity search finds related work - [ ] Search latency <200ms for 10k artifacts ## Priority MEDIUM - Enables knowledge accumulation ## Related - EMBED-001: Embedding Engine Infrastructure - EMBED-003: RAG System
Author
Owner

🤖 [quickfix-mesh-seed-128] still working — overseer retry

🤖 [`quickfix-mesh-seed-128`] still working — overseer retry
Author
Owner

🤖 [quickfix-mesh-seed-128] still working — overseer retry

🤖 [`quickfix-mesh-seed-128`] still working — overseer retry
Author
Owner

🤖 [quickfix-mesh-seed-128] still working — overseer retry

🤖 [`quickfix-mesh-seed-128`] still working — overseer retry
Author
Owner

🤖 [quickfix-mesh-seed-128] still working — overseer retry

🤖 [`quickfix-mesh-seed-128`] still working — overseer retry
Author
Owner

Quickfix overseer report

Result: Promoted to normal pipeline (quickfix label removed, triage-approved kept)

Attempts made:

  1. Opencode completed but fixed issue #118 (intent rejection) instead of #128 - model drift
  2. Opencode exited after permission error on wrong path
    3-5. Opencode exited prematurely due to internal git snapshot bug (pathspec error)

Root cause: The opencode process has a bug in its snapshot tool that causes it to exit the execution loop after 3 snapshot failures. This is an opencode infrastructure issue.

Partial progress: The artifact_store.py has some uncommitted schema changes (embedding column added).

Side effect: Commit e693e30 (FIX #118) was pushed - intent rejection with clear errors when no workers exist.

## Quickfix overseer report **Result:** Promoted to normal pipeline (quickfix label removed, triage-approved kept) **Attempts made:** 1. Opencode completed but fixed issue #118 (intent rejection) instead of #128 - model drift 2. Opencode exited after permission error on wrong path 3-5. Opencode exited prematurely due to internal git snapshot bug (pathspec error) **Root cause:** The opencode process has a bug in its snapshot tool that causes it to exit the execution loop after 3 snapshot failures. This is an opencode infrastructure issue. **Partial progress:** The artifact_store.py has some uncommitted schema changes (embedding column added). **Side effect:** Commit e693e30 (FIX #118) was pushed - intent rejection with clear errors when no workers exist.
Author
Owner

🤖 Claimed by gsd-issue-fixer-mesh-seed-128 — starting work

🤖 Claimed by `gsd-issue-fixer-mesh-seed-128` — starting work
Author
Owner

🤖 Claimed by gsd-issue-fixer-mesh-seed-128 — starting work

🤖 Claimed by `gsd-issue-fixer-mesh-seed-128` — starting work
Author
Owner

🤖 Claimed by gsd-issue-fixer-mesh-seed-128 — starting work

🤖 Claimed by `gsd-issue-fixer-mesh-seed-128` — starting work
Author
Owner

🤖 Claimed by gsd-issue-fixer-mesh-seed-128 — starting work

🤖 Claimed by `gsd-issue-fixer-mesh-seed-128` — starting work
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — claimed — starting pipeline

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — claimed — starting pipeline
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — claimed — starting pipeline

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — claimed — starting pipeline
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — claimed — starting pipeline

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — claimed — starting pipeline
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — claimed — starting pipeline

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — claimed — starting pipeline
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — research

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — research
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — research

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — research
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — research

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — research
Author
Owner

GSD pipeline blocked at RESEARCH: prerequisite gate (fetch) not passed.
Pipeline state needs reset. Check if another run is in progress.

GSD pipeline blocked at RESEARCH: prerequisite gate (fetch) not passed. Pipeline state needs reset. Check if another run is in progress.
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — plan

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — plan
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — plan

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — plan
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — implement attempt 1

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — implement attempt 1
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — implement attempt 1

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — implement attempt 1
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — plan

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — plan
Author
Owner

🤖 [gsd-issue-fixer-mesh-seed-128] still working — implement attempt 1

🤖 [`gsd-issue-fixer-mesh-seed-128`] still working — implement attempt 1
Mark 2026-06-16 03:25:59 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/mesh-seed#128
No description provided.