Commit 3ff5efd2 3ff5efd2a67177bd01f1499e74c33d6aee129fc8 by cnb.bofCdSsphPA

update readme.md

1 parent 5e373f5b
Showing 40 changed files with 158 additions and 148 deletions
# oh-my-codex agent: analyst
name = "analyst"
description = "Requirements clarity, acceptance criteria, hidden constraints"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "medium"
developer_instructions = """
<identity>
......@@ -168,5 +167,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: frontier
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
......@@ -2,7 +2,6 @@
name = "architect"
description = "System design, boundaries, interfaces, long-horizon tradeoffs"
model = "gpt-5.4-mini"
model_provider = "my-local-llm"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......
# oh-my-codex agent: code-reviewer
name = "code-reviewer"
description = "Comprehensive review across all concerns"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -172,5 +171,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: frontier
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: code-simplifier
name = "code-simplifier"
description = "Simplifies recently modified code for clarity and consistency without changing behavior"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -164,5 +163,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: frontier
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: critic
name = "critic"
description = "Plan/design critical challenge and review"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -113,5 +112,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: frontier
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: debugger
name = "debugger"
description = "Root-cause analysis, regression isolation, failure diagnosis"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -149,5 +148,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: standard
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: dependency-expert
name = "dependency-expert"
description = "External SDK/API/package evaluation"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -162,5 +161,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: standard
- routing_role: specialist
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: designer
name = "designer"
description = "UX/UI architecture, interaction design"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -158,5 +157,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: standard
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: executor
name = "executor"
description = "Code implementation, refactoring, feature work"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "medium"
developer_instructions = """
<identity>
......@@ -140,5 +139,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: standard
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
......@@ -2,7 +2,6 @@
name = "explore"
description = "Fast codebase search and file/symbol mapping"
model = "gpt-5.3-codex-spark"
model_provider = "my-local-llm"
model_reasoning_effort = "low"
developer_instructions = """
<identity>
......
# oh-my-codex agent: git-master
name = "git-master"
description = "Commit strategy, history hygiene, rebasing"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -146,5 +145,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: standard
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
......@@ -2,7 +2,6 @@
name = "planner"
description = "Task sequencing, execution plans, risk flags"
model = "gpt-5.4-mini"
model_provider = "my-local-llm"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......
# oh-my-codex agent: prometheus-strict-metis
name = "prometheus-strict-metis"
description = "Prometheus Strict requirements interviewer and ambiguity mapper"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -301,5 +300,5 @@ This role is tuned for frontier-class models.
- model_class: frontier
- routing_role: leader
- native_subagent_delegation: allowed
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: prometheus-strict-momus
name = "prometheus-strict-momus"
description = "Prometheus Strict adversarial plan critic and risk challenger"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -115,5 +114,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: frontier
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: prometheus-strict-oracle
name = "prometheus-strict-oracle"
description = "Prometheus Strict implementation readiness verifier and handoff judge"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -140,5 +139,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: standard
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
......@@ -2,7 +2,6 @@
name = "researcher"
description = "External documentation and reference research"
model = "gpt-5.4-mini"
model_provider = "my-local-llm"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......
# oh-my-codex agent: scholastic
name = "scholastic"
description = "Ontology-first reasoning reviewer: category mistakes, hidden assumptions, modality separation, scholastic critique, and minimal-repair proposals"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
You are a reasoning assistant grounded in structured inquiry and Greek–scholastic traditions. When responding:
......@@ -44,5 +43,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: frontier
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: team-executor
name = "team-executor"
description = "Supervised team execution for conservative delivery lanes"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "medium"
developer_instructions = """
<identity>
......@@ -89,5 +88,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: frontier
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: test-engineer
name = "test-engineer"
description = "Test strategy, coverage, flaky-test hardening"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "medium"
developer_instructions = """
<identity>
......@@ -162,5 +161,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: deep-worker
- model_class: frontier
- routing_role: executor
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: verifier
name = "verifier"
description = "Completion evidence, claim validation, test adequacy"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -118,5 +117,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: frontier-orchestrator
- model_class: standard
- routing_role: leader
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: vision
name = "vision"
description = "Image/screenshot/diagram analysis"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "low"
developer_instructions = """
<identity>
......@@ -130,5 +129,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: fast-lane
- model_class: frontier
- routing_role: specialist
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
# oh-my-codex agent: writer
name = "writer"
description = "Documentation, migration notes, user guidance"
model = "gpt-5.4"
model_provider = "my-local-llm"
model = "gpt-5.5"
model_reasoning_effort = "high"
developer_instructions = """
<identity>
......@@ -141,5 +140,5 @@ Use local tools; report missing specialist coverage to the leader.
- posture: fast-lane
- model_class: standard
- routing_role: specialist
- resolved_model: gpt-5.4
- resolved_model: gpt-5.5
"""
......
......@@ -71,10 +71,11 @@ Delegates to the `code-reviewer` and `architect` agents in parallel for a two-la
Do not self-review as a fallback. If the `code-reviewer` or `architect` agent path is missing, unavailable, skipped, or fails, emit a clear unavailable-review result and block approval until the independent lane evidence exists.
Respect the user's current model and reasoning/effort selection when launching review lanes. Do not pass `model` or `reasoning_effort` overrides in the review-lane task calls unless the user explicitly asks for review-specific overrides; omitting them lets native subagents inherit the active session settings.
```
task(
agent_type="code-reviewer",
reasoning_effort="xhigh",
prompt="CODE REVIEW TASK
Review code changes for quality, security, and maintainability.
......@@ -100,7 +101,6 @@ Output: Code review report with:
task(
agent_type="architect",
reasoning_effort="xhigh",
prompt="ARCHITECTURE / DEVIL'S-ADVOCATE REVIEW TASK
Review the same code changes from the architecture/tradeoff perspective.
......
......@@ -51,6 +51,11 @@ If no flag is provided, use **Standard**.
- Gather codebase facts via `explore` before asking user about internals
- `omx explore` is deprecated. Use normal repository inspection tools/subagents for simple read-only brownfield fact gathering; use `omx sparkshell` only for explicit shell-native read-only evidence, and keep ambiguous or non-shell-only investigation on the richer normal path.
- Always run a preflight context intake before the first interview question
- For brownfield work, preflight must include doc/context grounding before user-facing questions: inspect applicable `AGENTS.md` files, README/getting-started docs, relevant `docs/` contracts/plans/ADRs, existing `.omx/context/` snapshots, and any project-local glossary/context files such as `CONTEXT.md` or `CONTEXT-MAP.md` when present.
- Treat existing repo language as evidence, not authority: if the user uses a fuzzy, overloaded, or conflicting term, surface the specific doc/code wording and ask which meaning should govern before implementation.
- Cross-check user claims about current behavior against code or documented contracts when discoverable. If docs and code disagree, ask a confirmation question that names both sources instead of silently choosing one.
- Use scenario-based edge-case grilling when relationships, boundaries, or handoff behavior are unclear: invent one concrete scenario that stresses the ambiguous boundary, then ask one focused question about the expected outcome.
- Durable docs, glossary, ADR, or memory updates are opt-in and public-safe only. Deep-interview may recommend such updates in the handoff summary, but must not automatically create or dump public docs from interview transcripts unless the user explicitly chooses that as in-scope.
- If initial context is oversized or would exceed the prompt budget, do not paste or forward the raw payload into interview prompts; request and record a prompt-safe initial-context summary first
- The oversized initial-context summary gate is blocking: wait for the concise summary before ambiguity scoring, crystallizing artifacts, or any downstream execution handoff
- The summary must preserve goals, constraints, success criteria, non-goals, decision boundaries, and references to any full source documents so downstream consumers receive a prompt-safe but faithful context
......@@ -97,8 +102,15 @@ If no flag is provided, use **Standard**.
- Unknowns/open questions
- Decision-boundary unknowns
- Likely codebase touchpoints
- Relevant repo docs/rules/context inspected
- Terminology or doc/code conflicts found
- Prompt-safe initial-context summary status (`not_needed`, `needed`, or `recorded`)
5. Save snapshot to `.omx/context/{slug}-{timestamp}.md` (UTC `YYYYMMDDTHHMMSSZ`) and reference it in mode state.
5. For brownfield tasks, inspect the applicable documentation/rule surface before the first user-facing round. Prefer exact, nearby sources over broad scans:
- governing `AGENTS.md` files and template/runtime instruction surfaces that apply to the touched paths
- README/getting-started docs and relevant docs under `docs/`, especially contracts, plans, ADR-like records, and workflow docs
- existing `.omx/context/` snapshots, `.omx/specs/`, and planning artifacts relevant to the slug
- project-local glossary/context files such as `CONTEXT.md`, `CONTEXT-MAP.md`, or context-specific docs when they exist
6. Save snapshot to `.omx/context/{slug}-{timestamp}.md` (UTC `YYYYMMDDTHHMMSSZ`) and reference it in mode state.
## Phase 1: Initialize
......@@ -137,13 +149,14 @@ If no flag is provided, use **Standard**.
Repeat until ambiguity `<= threshold`, the pressure pass is complete, the readiness gates are explicit, the user exits with warning, or max rounds are reached. This is a stop condition: below threshold, do not open a new ordinary interview branch.
### 2a) Generate next question
If the initial context is oversized and no prompt-safe summary has been recorded yet, the next question must be only a summary request. Do not score ambiguity, do not run readiness gates, and do not hand off to `$ralplan`, `$autopilot`, `$ralph`, or `$team` until that summary answer is captured.
If the initial context is oversized and no prompt-safe summary has been recorded yet, the next question must be only a summary request. Do not score ambiguity, do not run readiness gates, and do not hand off to `$ultragoal`, `$ralplan`, `$autopilot`, `$ralph`, or `$team` until that summary answer is captured.
Use:
- Original idea
- Prior Q&A rounds
- Current dimension scores
- Brownfield context (if any)
- Doc/context grounding notes, including existing terminology, governing rules, and any doc/code mismatch
- Activated challenge mode injection (Phase 3)
Target the lowest-scoring dimension, but respect stage priority:
......@@ -155,12 +168,21 @@ Follow-up pressure ladder after each answer:
1. Ask for a concrete example, counterexample, or evidence signal behind the latest claim
2. Probe the hidden assumption, dependency, or belief that makes the claim true
3. Force a boundary or tradeoff: what would you explicitly not do, defer, or reject?
4. If the answer still describes symptoms, reframe toward essence / root cause before moving on
4. Challenge fuzzy or conflicting terms against the repo's documented language and current code behavior
5. Stress-test the boundary with one concrete scenario or edge case when a relationship or handoff remains ambiguous
6. If the answer still describes symptoms, reframe toward essence / root cause before moving on
Prefer staying on the same thread for multiple rounds when it has the highest leverage. Breadth without pressure is not progress.
Maintain a **Breadth Ledger** across independent ambiguity tracks: scope, constraints, outputs, verification, brownfield integration, and any user-mentioned deliverable tracks. The ledger is a guard, not a mandatory rotation rule: stay deep on the current thread until it has been pressure-tested, then zoom out only when another material track remains unresolved and would change execution.
Maintain a **Docs/Terminology Ledger** for brownfield interviews:
- repo docs/rules/context sources inspected, with path references
- canonical terms already used by the repo and terms to avoid or disambiguate
- user terms that conflict with docs or current code behavior
- doc/code mismatches that require a human decision before implementation
- optional durable-doc follow-ups that are safe to propose but not auto-apply
Detailed dimensions:
- Intent Clarity — why the user wants this
- Outcome Clarity — what end state they want
......@@ -306,6 +328,7 @@ Append round result and updated scores via `omx state write --input '<json>' --j
Use each mode once when applicable. These are normal escalation tools, not rare rescue moves:
- **Contrarian** (round 2+ or immediately when an answer rests on an untested assumption): challenge core assumptions
- **Terminologist** (brownfield, whenever a key term is fuzzy, overloaded, or conflicts with repo docs/code): force a canonical meaning against existing project language before implementation
- **Simplifier** (round 4+ or when scope expands faster than outcome clarity): probe minimal viable scope
- **Ontologist** (round 5+ and ambiguity > 0.25, or when the user keeps describing symptoms): ask for essence-level reframing
......@@ -336,6 +359,9 @@ Spec should include:
- Assumptions exposed + resolutions
- Pressure-pass findings (which answer was revisited, and what changed)
- Brownfield evidence vs inference notes for any repository-grounded confirmation questions
- Docs/Terminology Ledger with inspected repo docs/rules/context, term conflicts, and any doc/code mismatch decisions
- Scenario/edge-case pressure findings that materially shaped scope or acceptance criteria
- Optional durable documentation recommendations, explicitly marked opt-in and public-safe; do not include raw private transcript dumps
- Technical context findings
- Full or condensed transcript
......@@ -365,11 +391,11 @@ When the clarified task is specifically about `$autoresearch`, or the skill is i
## Phase 5: Execution Bridge
Present execution options after artifact generation using explicit handoff contracts. Treat the deep-interview spec as the current requirements source of truth and preserve intent, non-goals, decision boundaries, acceptance criteria, and any residual-risk warnings across the handoff.
Present execution options after artifact generation using explicit handoff contracts. Treat the deep-interview spec as the current requirements source of truth and preserve intent, non-goals, decision boundaries, acceptance criteria, docs/terminology grounding, and any residual-risk warnings across the handoff.
### Goal-mode follow-ups
Include these product-facing suggestions when they fit the clarified spec, without removing the existing `$ralplan`, `$autopilot`, `$ralph`, and `$team` handoff options:
Include these product-facing suggestions when they fit the clarified spec, without removing the existing `$ultragoal`, `$ralplan`, `$autopilot`, `$ralph`, and `$team` handoff options:
- **`$ultragoal`** — default goal-mode follow-up for implementation or general goal-oriented follow-up specs that should be converted into durable Codex/OMX goals with sequential completion tracking.
- **`$autoresearch-goal`** — use when the clarified context is a research project: a research question, reference/literature gathering, evaluator-backed analysis, or professor/critic-style deliverable.
......@@ -377,7 +403,16 @@ Include these product-facing suggestions when they fit the clarified spec, witho
Recommend `$ultragoal` as the default durable goal-mode follow-up because it supersedes Ralph for goal tracking. Preserve `$team` for coordinated parallel implementation and keep `$ralph` only as an explicit fallback for persistent single-owner execution/verification when the user specifically selects it.
### 1. **`$ralplan` (Recommended)**
### 1. **`$ultragoal` (Default durable execution follow-up)**
- **Input Artifact:** `.omx/specs/deep-interview-{slug}.md` (optionally accompanied by the transcript/context snapshot for traceability)
- **Invocation:** `$ultragoal create-goals --brief-file <spec-path>` followed by `$ultragoal complete-goals` in the active execution lane
- **Consumer Behavior:** Convert the clarified spec into durable goal-mode work. Preserve intent, non-goals, decision boundaries, acceptance criteria, docs/terminology grounding, scenario-pressure findings, and residual-risk warnings as binding story constraints.
- **Skipped / Already-Satisfied Stages:** Requirement interview, ambiguity clarification, doc/context preflight, and early intent-boundary elicitation
- **Expected Output:** `.omx/ultragoal/brief.md`, `.omx/ultragoal/goals.json`, `.omx/ultragoal/ledger.jsonl`, implementation evidence, verification evidence, and final cleanup/review-gate evidence
- **Best When:** The clarified spec is execution-ready or the user explicitly wants durable goal tracking as the next step
- **Next Recommended Step:** Run the Ultragoal completion loop; launch `$team` only inside an active Ultragoal story when parallel lanes are warranted, and use `$ralph` only as an explicit fallback when the user asks for that legacy persistence mode
### 2. **`$ralplan` (Recommended when architecture/test-shape review is still needed)**
- **Input Artifact:** `.omx/specs/deep-interview-{slug}.md` (optionally accompanied by the transcript/context snapshot for traceability)
- **Invocation:** `$plan --consensus --direct <spec-path>`
- **Consumer Behavior:** Treat the deep-interview spec as the requirements source of truth. Do not repeat the interview by default; refine architecture/feasibility around the clarified intent and boundaries instead.
......@@ -386,7 +421,7 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- **Best When:** Requirements are clear enough to stop interviewing, but architectural validation / consensus planning is still desirable
- **Next Recommended Step:** Use the approved planning artifacts with `$ultragoal` as the default durable goal-mode follow-up (optionally with `$team` for parallel lanes); choose `$autoresearch-goal` for research validation or `$performance-goal` for measurable optimization, and use `$ralph` only as an explicit fallback when a narrow single-owner persistence loop is requested
### 2. **`$autopilot`**
### 3. **`$autopilot`**
- **Input Artifact:** `.omx/specs/deep-interview-{slug}.md`
- **Invocation:** `$autopilot <spec-path>`
- **Consumer Behavior:** Use the deep-interview spec as the clarified execution brief. Preserve intent, non-goals, decision boundaries, and acceptance criteria as binding context for planning/execution.
......@@ -395,7 +430,7 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- **Best When:** The clarified spec is already strong enough for direct planning + execution without an additional consensus gate
- **Next Recommended Step:** Continue through autopilot's execution/QA/validation flow; if coordination-heavy execution emerges, prefer `$team` under a leader-owned `$ultragoal` ledger, using `$ralph` only as an explicit fallback when a narrow single-owner persistence loop is requested
### 3. **`$ralph` (Explicit fallback only)**
### 4. **`$ralph` (Explicit fallback only)**
- **Input Artifact:** `.omx/specs/deep-interview-{slug}.md`
- **Invocation:** `$ralph <spec-path>`
- **Consumer Behavior:** Use the spec's acceptance criteria and boundary constraints as the persistence target. Do not reopen requirements discovery unless the user explicitly asks to refine further.
......@@ -404,7 +439,7 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- **Best When:** The user explicitly asks for Ralph's persistent sequential completion pressure; otherwise use `$ultragoal` for durable goal tracking and completion checkpoints
- **Next Recommended Step:** If this explicit fallback is selected, continue Ralph's persistence loop; if work expands into coordination-heavy lanes, hand off to `$team` under `$ultragoal` checkpointing rather than promoting Ralph as the next default
### 4. **`$team`**
### 5. **`$team`**
- **Input Artifact:** `.omx/specs/deep-interview-{slug}.md`
- **Invocation:** `$team <spec-path>`
- **Consumer Behavior:** Treat the spec as shared execution context for coordinated parallel work. Preserve the clarified intent, non-goals, decision boundaries, and acceptance criteria as common lane constraints.
......@@ -413,7 +448,7 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- **Best When:** The task is large, multi-lane, or blocker-sensitive enough to justify coordinated parallel execution instead of a single persistent loop
- **Next Recommended Step:** Follow the team verification path when the coordinated execution phase finishes; checkpoint completion through `$ultragoal` by default, escalating to a separate Ralph loop only when the user explicitly asks for that persistent verification/fix owner
### 5. **Refine further**
### 6. **Refine further**
- **Input Artifact:** Existing transcript, context snapshot, and current spec draft
- **Invocation:** Continue the interview loop
- **Consumer Behavior:** Re-enter questioning to resolve the highest-leverage remaining uncertainty
......@@ -437,6 +472,7 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- Use `omx state write/read --input '<json>' --json` for resumable mode state; `state_write` / `state_read` are explicit MCP compatibility fallbacks only
- If the interview cannot ask a required `omx question` round, persist the blocker as terminal state with `active: false` and `current_phase: "blocked"`; do not write a terminal blocked phase with `active: true`
- Read/write context snapshots under `.omx/context/`
- Read applicable repo docs/rules/context during preflight; write durable docs, glossary, ADR, or memory updates only when the user explicitly opts in and the content is public-safe
- Record whether the oversized-context summary gate is not needed, pending, or satisfied before any scoring or handoff step
- Save transcript/spec artifacts under `.omx/interviews/` and `.omx/specs/`
</Tool_Usage>
......@@ -460,7 +496,11 @@ Recommend `$ultragoal` as the default durable goal-mode follow-up because it sup
- [ ] Transcript written to `.omx/interviews/{slug}-{timestamp}.md`
- [ ] Spec written to `.omx/specs/deep-interview-{slug}.md`
- [ ] Brownfield questions use evidence-backed confirmation when applicable
- [ ] Handoff options provided (`$ralplan`, `$autopilot`, `$ralph`, `$team`) plus context-sensitive goal-mode suggestions (`$ultragoal`, `$autoresearch-goal`, `$performance-goal`) when applicable
- [ ] Brownfield preflight inspected applicable repo docs/rules/context before user-facing questions
- [ ] Fuzzy or conflicting terminology was challenged against repo language/current code behavior when applicable
- [ ] Scenario-based edge-case grilling was used when boundary ambiguity would materially affect implementation
- [ ] Durable docs/ADR/memory updates, if any, were explicitly opted into and public-safe
- [ ] Handoff options provided (`$ultragoal`, `$ralplan`, `$autopilot`, `$ralph`, `$team`) plus context-sensitive goal-mode suggestions (`$autoresearch-goal`, `$performance-goal`) when applicable
- [ ] No direct implementation performed in this mode
</Final_Checklist>
......
......@@ -254,31 +254,31 @@ Auto-generated by `omx setup` from the current `config.toml` plus OMX model over
| Role | Model | Reasoning Effort | Use Case |
| --- | --- | --- | --- |
| Frontier (leader) | `gpt-5.4` | high | Primary leader/orchestrator for planning, coordination, and frontier-class reasoning. |
| Frontier (leader) | `gpt-5.5` | high | Primary leader/orchestrator for planning, coordination, and frontier-class reasoning. |
| Spark (explorer/fast) | `gpt-5.3-codex-spark` | low | Fast triage, explore, lightweight synthesis, and low-latency routing. |
| Standard (subagent default) | `gpt-5.4` | high | Default standard-capability model for installable specialists and secondary worker lanes unless a role is explicitly frontier or spark. |
| Standard (subagent default) | `gpt-5.5` | high | Default standard-capability model for installable specialists and secondary worker lanes unless a role is explicitly frontier or spark. |
| `explore` | `gpt-5.3-codex-spark` | low | Fast codebase search and file/symbol mapping (fast-lane, fast) |
| `analyst` | `gpt-5.4` | medium | Requirements clarity, acceptance criteria, hidden constraints (frontier-orchestrator, frontier) |
| `analyst` | `gpt-5.5` | medium | Requirements clarity, acceptance criteria, hidden constraints (frontier-orchestrator, frontier) |
| `planner` | `gpt-5.4-mini` | high | Task sequencing, execution plans, risk flags (frontier-orchestrator, frontier) |
| `architect` | `gpt-5.4-mini` | high | System design, boundaries, interfaces, long-horizon tradeoffs (frontier-orchestrator, frontier) |
| `debugger` | `gpt-5.4` | high | Root-cause analysis, regression isolation, failure diagnosis (deep-worker, standard) |
| `executor` | `gpt-5.4` | medium | Code implementation, refactoring, feature work (deep-worker, standard) |
| `team-executor` | `gpt-5.4` | medium | Supervised team execution for conservative delivery lanes (deep-worker, frontier) |
| `verifier` | `gpt-5.4` | high | Completion evidence, claim validation, test adequacy (frontier-orchestrator, standard) |
| `code-reviewer` | `gpt-5.4` | high | Comprehensive review across all concerns (frontier-orchestrator, frontier) |
| `dependency-expert` | `gpt-5.4` | high | External SDK/API/package evaluation (frontier-orchestrator, standard) |
| `test-engineer` | `gpt-5.4` | medium | Test strategy, coverage, flaky-test hardening (deep-worker, frontier) |
| `designer` | `gpt-5.4` | high | UX/UI architecture, interaction design (deep-worker, standard) |
| `writer` | `gpt-5.4` | high | Documentation, migration notes, user guidance (fast-lane, standard) |
| `git-master` | `gpt-5.4` | high | Commit strategy, history hygiene, rebasing (deep-worker, standard) |
| `code-simplifier` | `gpt-5.4` | high | Simplifies recently modified code for clarity and consistency without changing behavior (deep-worker, frontier) |
| `debugger` | `gpt-5.5` | high | Root-cause analysis, regression isolation, failure diagnosis (deep-worker, standard) |
| `executor` | `gpt-5.5` | medium | Code implementation, refactoring, feature work (deep-worker, standard) |
| `team-executor` | `gpt-5.5` | medium | Supervised team execution for conservative delivery lanes (deep-worker, frontier) |
| `verifier` | `gpt-5.5` | high | Completion evidence, claim validation, test adequacy (frontier-orchestrator, standard) |
| `code-reviewer` | `gpt-5.5` | high | Comprehensive review across all concerns (frontier-orchestrator, frontier) |
| `dependency-expert` | `gpt-5.5` | high | External SDK/API/package evaluation (frontier-orchestrator, standard) |
| `test-engineer` | `gpt-5.5` | medium | Test strategy, coverage, flaky-test hardening (deep-worker, frontier) |
| `designer` | `gpt-5.5` | high | UX/UI architecture, interaction design (deep-worker, standard) |
| `writer` | `gpt-5.5` | high | Documentation, migration notes, user guidance (fast-lane, standard) |
| `git-master` | `gpt-5.5` | high | Commit strategy, history hygiene, rebasing (deep-worker, standard) |
| `code-simplifier` | `gpt-5.5` | high | Simplifies recently modified code for clarity and consistency without changing behavior (deep-worker, frontier) |
| `researcher` | `gpt-5.4-mini` | high | External documentation and reference research (fast-lane, standard) |
| `prometheus-strict-metis` | `gpt-5.4` | high | Prometheus Strict requirements interviewer and ambiguity mapper (frontier-orchestrator, frontier) |
| `prometheus-strict-momus` | `gpt-5.4` | high | Prometheus Strict adversarial plan critic and risk challenger (frontier-orchestrator, frontier) |
| `prometheus-strict-oracle` | `gpt-5.4` | high | Prometheus Strict implementation readiness verifier and handoff judge (frontier-orchestrator, standard) |
| `critic` | `gpt-5.4` | high | Plan/design critical challenge and review (frontier-orchestrator, frontier) |
| `scholastic` | `gpt-5.4` | high | Ontology-first reasoning reviewer: category mistakes, hidden assumptions, modality separation, scholastic critique, and minimal-repair proposals (frontier-orchestrator, frontier) |
| `vision` | `gpt-5.4` | low | Image/screenshot/diagram analysis (fast-lane, frontier) |
| `prometheus-strict-metis` | `gpt-5.5` | high | Prometheus Strict requirements interviewer and ambiguity mapper (frontier-orchestrator, frontier) |
| `prometheus-strict-momus` | `gpt-5.5` | high | Prometheus Strict adversarial plan critic and risk challenger (frontier-orchestrator, frontier) |
| `prometheus-strict-oracle` | `gpt-5.5` | high | Prometheus Strict implementation readiness verifier and handoff judge (frontier-orchestrator, standard) |
| `critic` | `gpt-5.5` | high | Plan/design critical challenge and review (frontier-orchestrator, frontier) |
| `scholastic` | `gpt-5.5` | high | Ontology-first reasoning reviewer: category mistakes, hidden assumptions, modality separation, scholastic critique, and minimal-repair proposals (frontier-orchestrator, frontier) |
| `vision` | `gpt-5.5` | low | Image/screenshot/diagram analysis (fast-lane, frontier) |
<!-- OMX:MODELS:END -->
---
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T14:00:28.270203+08:00",
"started_at": "2026-06-04T14:23:30.631658+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T14:00:28.270203+08:00",
"finished_at": "2026-06-04T14:00:28.271729+08:00",
"started_at": "2026-06-04T14:23:30.631658+08:00",
"finished_at": "2026-06-04T14:23:30.633175+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T14:00:28.943358+08:00",
"started_at": "2026-06-04T14:23:31.618052+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T14:00:28.943358+08:00",
"finished_at": "2026-06-04T14:00:28.944578+08:00",
"started_at": "2026-06-04T14:23:31.618052+08:00",
"finished_at": "2026-06-04T14:23:31.619353+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T14:00:28.602175+08:00",
"started_at": "2026-06-04T14:23:30.925797+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T14:00:28.602175+08:00",
"finished_at": "2026-06-04T14:00:28.603652+08:00",
"started_at": "2026-06-04T14:23:30.925797+08:00",
"finished_at": "2026-06-04T14:23:30.927236+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T13:52:49.952665+08:00",
"started_at": "2026-06-04T14:23:29.621089+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T13:52:49.952665+08:00",
"finished_at": "2026-06-04T13:52:49.954302+08:00",
"started_at": "2026-06-04T14:23:29.621089+08:00",
"finished_at": "2026-06-04T14:23:29.622399+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T13:52:50.210469+08:00",
"started_at": "2026-06-04T14:23:29.790262+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T13:52:50.210469+08:00",
"finished_at": "2026-06-04T13:52:50.211993+08:00",
"started_at": "2026-06-04T14:23:29.790262+08:00",
"finished_at": "2026-06-04T14:23:29.791468+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T13:52:50.434101+08:00",
"started_at": "2026-06-04T14:23:29.982036+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T13:52:50.434101+08:00",
"finished_at": "2026-06-04T13:52:50.435667+08:00",
"started_at": "2026-06-04T14:23:29.982036+08:00",
"finished_at": "2026-06-04T14:23:29.983246+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -49,7 +49,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T13:52:50.702135+08:00",
"started_at": "2026-06-04T14:23:30.194094+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -111,8 +111,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T13:52:50.702135+08:00",
"finished_at": "2026-06-04T13:52:50.703634+08:00",
"started_at": "2026-06-04T14:23:30.194094+08:00",
"finished_at": "2026-06-04T14:23:30.195481+08:00",
"log_uri": null,
"metadata_json": {
"lane": "semantic",
......
......@@ -153,7 +153,7 @@
"job_status": "running",
"input_count": 20,
"output_count": null,
"started_at": "2026-06-04T13:57:50.652147+08:00",
"started_at": "2026-06-04T14:23:29.115597+08:00",
"finished_at": null,
"log_uri": null,
"metadata_json": {
......@@ -181,8 +181,8 @@
"job_status": "failed",
"input_count": 20,
"output_count": 0,
"started_at": "2026-06-04T13:57:50.652147+08:00",
"finished_at": "2026-06-04T13:57:50.653101+08:00",
"started_at": "2026-06-04T14:23:29.115597+08:00",
"finished_at": "2026-06-04T14:23:29.116450+08:00",
"log_uri": null,
"metadata_json": {
"lane": "exact",
......
......@@ -6,12 +6,8 @@
"features_added": 10,
"matcher_fingerprint_count": 5,
"fallback_fingerprint_count": 0,
"semantic_runtime_available": false,
"semantic_runtime_missing": [
"torch",
"torchaudio",
"transformers"
],
"semantic_runtime_ready_count": 0,
"semantic_fallback_count": 5
"semantic_runtime_available": true,
"semantic_runtime_missing": [],
"semantic_runtime_ready_count": 5,
"semantic_fallback_count": 0
}
\ No newline at end of file
......
......@@ -12,11 +12,11 @@
],
"feature_ids": [
20,
11,
30,
21,
13,
31,
22,
15
32
],
"membership_ids": [
8
......@@ -31,9 +31,9 @@
],
"feature_ids": [
23,
17,
33,
24,
19
34
],
"membership_ids": [
9
......@@ -43,7 +43,7 @@
"counts": {
"media_entity": 9,
"audio_object": 22,
"feature_fact": 24,
"feature_fact": 34,
"set_membership": 9
},
"window_lineage_sample": {
......@@ -55,10 +55,10 @@
"end_ms": 6000
},
"feature_lineage_sample": {
"feature_type": "fingerprint",
"model_name": "chromaprint_matcher",
"model_version": "phase1_local",
"feature_set_name": "chromaprint_matcher_5s",
"feature_type": "embedding",
"model_name": "mert-v1-95m",
"model_version": "hf-main",
"feature_set_name": "mert_5s_hop2.5_v1",
"window_id": 22,
"song_id": 9,
"title": "song beta"
......
{"song": {"biz_key": "song_alpha", "title": "song alpha", "artist_name": "artist a"}, "asset": {"source_type": "official", "storage_uri": "/workspace/acr-engine/data/songcentric_builder_smoke/song_alpha/artist_a/clip1.wav", "storage_scheme": "file", "checksum": "path:/workspace/acr-engine/data/songcentric_builder_smoke/song_alpha/artist_a/clip1.wav", "codec": "wav", "sample_rate": 16000, "channels": 1, "duration_ms": 8000}, "windows": [{"start_ms": 0, "end_ms": 5000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "local_wavehash_embed", "model_version": "v1", "feature_set_name": "wavehash_embed_5s", "feature_schema_ver": "v1", "embedding_dim": 8, "embedding_uri": "inline://593c7a661cc87444:0:5000", "vector_table_name": "audio_embedding_vector_8_placeholder", "checksum": "emb:593c7a661cc87444", "metadata_json": {"energy": 30555200, "rate": 16000, "channels": 1, "semantic_backend": "local_fallback", "runtime_missing": ["torch", "torchaudio", "transformers"]}}]}, {"start_ms": 2500, "end_ms": 7500, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "local_wavehash_embed", "model_version": "v1", "feature_set_name": "wavehash_embed_5s", "feature_schema_ver": "v1", "embedding_dim": 8, "embedding_uri": "inline://593c7a661cc87444:2500:7500", "vector_table_name": "audio_embedding_vector_8_placeholder", "checksum": "emb:593c7a661cc87444", "metadata_json": {"energy": 30555200, "rate": 16000, "channels": 1, "semantic_backend": "local_fallback", "runtime_missing": ["torch", "torchaudio", "transformers"]}}]}, {"start_ms": 3000, "end_ms": 8000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "local_wavehash_embed", "model_version": "v1", "feature_set_name": "wavehash_embed_5s", "feature_schema_ver": "v1", "embedding_dim": 8, "embedding_uri": "inline://593c7a661cc87444:3000:8000", "vector_table_name": "audio_embedding_vector_8_placeholder", "checksum": "emb:593c7a661cc87444", "metadata_json": {"energy": 30555200, "rate": 16000, "channels": 1, "semantic_backend": "local_fallback", "runtime_missing": ["torch", "torchaudio", "transformers"]}}]}], "memberships": [{"set_type": "reference_set", "set_name": "phase1_hot_reference_v1", "member_type": "asset", "priority": 100}]}
{"song": {"biz_key": "song_beta", "title": "song beta", "artist_name": "artist b"}, "asset": {"source_type": "official", "storage_uri": "/workspace/acr-engine/data/songcentric_builder_smoke/song_beta/artist_b/clip2.wav", "storage_scheme": "file", "checksum": "path:/workspace/acr-engine/data/songcentric_builder_smoke/song_beta/artist_b/clip2.wav", "codec": "wav", "sample_rate": 16000, "channels": 1, "duration_ms": 6000}, "windows": [{"start_ms": 0, "end_ms": 5000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "d8fc2442b4ec3ce5ae180c5845cffccb", "checksum": "chromaprint:d8fc2442b4ec3ce5", "metadata_json": {"hash_count": 2202, "hash_sample": [[2763289, 23], [2763524, 23], [2763541, 23], [2763549, 23], [2763566, 23], [2763801, 23], [2764050, 23], [2764075, 23]]}}, {"feature_type": "embedding", "model_name": "local_wavehash_embed", "model_version": "v1", "feature_set_name": "wavehash_embed_5s", "feature_schema_ver": "v1", "embedding_dim": 8, "embedding_uri": "inline://4ed2ccfa55b10b88:0:5000", "vector_table_name": "audio_embedding_vector_8_placeholder", "checksum": "emb:4ed2ccfa55b10b88", "metadata_json": {"energy": 30555680, "rate": 16000, "channels": 1, "semantic_backend": "local_fallback", "runtime_missing": ["torch", "torchaudio", "transformers"]}}]}, {"start_ms": 1000, "end_ms": 6000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "d8fc2442b4ec3ce5ae180c5845cffccb", "checksum": "chromaprint:d8fc2442b4ec3ce5", "metadata_json": {"hash_count": 2202, "hash_sample": [[2763289, 23], [2763524, 23], [2763541, 23], [2763549, 23], [2763566, 23], [2763801, 23], [2764050, 23], [2764075, 23]]}}, {"feature_type": "embedding", "model_name": "local_wavehash_embed", "model_version": "v1", "feature_set_name": "wavehash_embed_5s", "feature_schema_ver": "v1", "embedding_dim": 8, "embedding_uri": "inline://4ed2ccfa55b10b88:1000:6000", "vector_table_name": "audio_embedding_vector_8_placeholder", "checksum": "emb:4ed2ccfa55b10b88", "metadata_json": {"energy": 30555680, "rate": 16000, "channels": 1, "semantic_backend": "local_fallback", "runtime_missing": ["torch", "torchaudio", "transformers"]}}]}], "memberships": [{"set_type": "reference_set", "set_name": "phase1_hot_reference_v1", "member_type": "asset", "priority": 100}]}
{"song": {"biz_key": "song_alpha", "title": "song alpha", "artist_name": "artist a"}, "asset": {"source_type": "official", "storage_uri": "/workspace/acr-engine/data/songcentric_builder_smoke/song_alpha/artist_a/clip1.wav", "storage_scheme": "file", "checksum": "path:/workspace/acr-engine/data/songcentric_builder_smoke/song_alpha/artist_a/clip1.wav", "codec": "wav", "sample_rate": 16000, "channels": 1, "duration_ms": 8000}, "windows": [{"start_ms": 0, "end_ms": 5000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "mert-v1-95m", "model_version": "hf-main", "feature_set_name": "mert_5s_hop2.5_v1", "feature_schema_ver": "v1", "embedding_dim": 768, "embedding_uri": "inline-mert://19c0162d3bdde235:0:5000", "vector_table_name": "audio_embedding_vector_768_placeholder", "checksum": "emb:19c0162d3bdde235", "metadata_json": {"semantic_backend": "mert_runtime", "embedding_preview": [-0.3520504832267761, 0.14331907033920288, 0.5382340550422668, -0.2453354150056839, -0.2550539970397949, 0.18803788721561432, -0.7973936200141907, 0.0016444226494058967], "model_id": "m-a-p/MERT-v1-95M", "sample_rate": 24000}}]}, {"start_ms": 2500, "end_ms": 7500, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "mert-v1-95m", "model_version": "hf-main", "feature_set_name": "mert_5s_hop2.5_v1", "feature_schema_ver": "v1", "embedding_dim": 768, "embedding_uri": "inline-mert://19c0162d3bdde235:2500:7500", "vector_table_name": "audio_embedding_vector_768_placeholder", "checksum": "emb:19c0162d3bdde235", "metadata_json": {"semantic_backend": "mert_runtime", "embedding_preview": [-0.3520504832267761, 0.14331907033920288, 0.5382340550422668, -0.2453354150056839, -0.2550539970397949, 0.18803788721561432, -0.7973936200141907, 0.0016444226494058967], "model_id": "m-a-p/MERT-v1-95M", "sample_rate": 24000}}]}, {"start_ms": 3000, "end_ms": 8000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "dc0c731425f360787f462da693ff4a50", "checksum": "chromaprint:dc0c731425f36078", "metadata_json": {"hash_count": 2643, "hash_sample": [[1842187, 11], [1842188, 11], [1842189, 11], [1842201, 11], [1842212, 11], [1842213, 11], [1842214, 11], [1842438, 11]]}}, {"feature_type": "embedding", "model_name": "mert-v1-95m", "model_version": "hf-main", "feature_set_name": "mert_5s_hop2.5_v1", "feature_schema_ver": "v1", "embedding_dim": 768, "embedding_uri": "inline-mert://41572279f5119142:3000:8000", "vector_table_name": "audio_embedding_vector_768_placeholder", "checksum": "emb:41572279f5119142", "metadata_json": {"semantic_backend": "mert_runtime", "embedding_preview": [-0.35207104682922363, 0.143335223197937, 0.5382229685783386, -0.24530577659606934, -0.25506195425987244, 0.18804362416267395, -0.7973993420600891, 0.0016323021845892072], "model_id": "m-a-p/MERT-v1-95M", "sample_rate": 24000}}]}], "memberships": [{"set_type": "reference_set", "set_name": "phase1_hot_reference_v1", "member_type": "asset", "priority": 100}]}
{"song": {"biz_key": "song_beta", "title": "song beta", "artist_name": "artist b"}, "asset": {"source_type": "official", "storage_uri": "/workspace/acr-engine/data/songcentric_builder_smoke/song_beta/artist_b/clip2.wav", "storage_scheme": "file", "checksum": "path:/workspace/acr-engine/data/songcentric_builder_smoke/song_beta/artist_b/clip2.wav", "codec": "wav", "sample_rate": 16000, "channels": 1, "duration_ms": 6000}, "windows": [{"start_ms": 0, "end_ms": 5000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "d8fc2442b4ec3ce5ae180c5845cffccb", "checksum": "chromaprint:d8fc2442b4ec3ce5", "metadata_json": {"hash_count": 2202, "hash_sample": [[2763289, 23], [2763524, 23], [2763541, 23], [2763549, 23], [2763566, 23], [2763801, 23], [2764050, 23], [2764075, 23]]}}, {"feature_type": "embedding", "model_name": "mert-v1-95m", "model_version": "hf-main", "feature_set_name": "mert_5s_hop2.5_v1", "feature_schema_ver": "v1", "embedding_dim": 768, "embedding_uri": "inline-mert://8fba0c500a3b0ea1:0:5000", "vector_table_name": "audio_embedding_vector_768_placeholder", "checksum": "emb:8fba0c500a3b0ea1", "metadata_json": {"semantic_backend": "mert_runtime", "embedding_preview": [-0.19793148338794708, -0.03429954871535301, 0.19485341012477875, 0.20893174409866333, 0.09195005148649216, 0.3521425426006317, -0.35800355672836304, -0.014406130649149418], "model_id": "m-a-p/MERT-v1-95M", "sample_rate": 24000}}]}, {"start_ms": 1000, "end_ms": 6000, "features": [{"feature_type": "fingerprint", "model_name": "chromaprint_matcher", "model_version": "phase1_local", "feature_set_name": "chromaprint_matcher_5s", "fingerprint_value": "d8fc2442b4ec3ce5ae180c5845cffccb", "checksum": "chromaprint:d8fc2442b4ec3ce5", "metadata_json": {"hash_count": 2202, "hash_sample": [[2763289, 23], [2763524, 23], [2763541, 23], [2763549, 23], [2763566, 23], [2763801, 23], [2764050, 23], [2764075, 23]]}}, {"feature_type": "embedding", "model_name": "mert-v1-95m", "model_version": "hf-main", "feature_set_name": "mert_5s_hop2.5_v1", "feature_schema_ver": "v1", "embedding_dim": 768, "embedding_uri": "inline-mert://c9df74780785105b:1000:6000", "vector_table_name": "audio_embedding_vector_768_placeholder", "checksum": "emb:c9df74780785105b", "metadata_json": {"semantic_backend": "mert_runtime", "embedding_preview": [-0.1979486346244812, -0.03429602086544037, 0.19487044215202332, 0.2089356631040573, 0.09194732457399368, 0.3521481156349182, -0.35801443457603455, -0.01440188754349947], "model_id": "m-a-p/MERT-v1-95M", "sample_rate": 24000}}]}], "memberships": [{"set_type": "reference_set", "set_name": "phase1_hot_reference_v1", "member_type": "asset", "priority": 100}]}
......
......@@ -33,26 +33,22 @@
"features_added": 10,
"matcher_fingerprint_count": 5,
"fallback_fingerprint_count": 0,
"semantic_runtime_available": false,
"semantic_runtime_missing": [
"torch",
"torchaudio",
"transformers"
],
"semantic_runtime_ready_count": 0,
"semantic_fallback_count": 5
"semantic_runtime_available": true,
"semantic_runtime_missing": [],
"semantic_runtime_ready_count": 5,
"semantic_fallback_count": 0
},
"import_counts": {
"media_entity": 9,
"audio_object": 22,
"feature_fact": 24,
"feature_fact": 34,
"set_membership": 9
},
"feature_lineage_sample": {
"feature_type": "fingerprint",
"model_name": "chromaprint_matcher",
"model_version": "phase1_local",
"feature_set_name": "chromaprint_matcher_5s",
"feature_type": "embedding",
"model_name": "mert-v1-95m",
"model_version": "hf-main",
"feature_set_name": "mert_5s_hop2.5_v1",
"window_id": 22,
"song_id": 9,
"title": "song beta"
......