Repository navigation
docs: Add canonical ONEX Runtime & Registration architecture plan - #56
Conversation
Add comprehensive documentation for the ONEX Runtime and Two-Way Registration architecture refactor: Design Documents: - DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md: Canonical workflow architecture defining event-driven orchestration, pure reducer pattern, and isolated I/O effects (v2.1.0) - ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md: 31-ticket implementation plan across 8 sections (Foundation, Runtime, Orchestrator, Reducer, Effects, Projection, Testing, Migration) Current State Analysis (docs/as_is/): - Layering and terminology analysis - Node execution shapes documentation - Messaging and envelope patterns - Event bus and runtime dispatch shapes - Two-way registration trace - Interface crosswalk - Decision points and open questions Handoff Documentation: - HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md All 31 tickets have been created in Linear with proper dependencies, priorities, and acceptance criteria. Key tickets: - OMN-888: Registration Orchestrator (In Progress) - OMN-889: Registration Reducer (In Review) - OMN-890: Registry Effect (Done)
WalkthroughThirteen new documentation files plus one policy doc were added describing as‑is ONEX runtime shapes, messaging/envelopes/event‑bus models, runtime dispatch, interface crosswalk, decision points, two prescriptive design plans, a migration handoff, a parallel execution plan, and a new policy (CLAUDE.md). No code changes or public API modifications were introduced. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25–35 minutes
Poem
Comment |
PR Review: Canonical ONEX Runtime & Registration Architecture PlanSummaryThis PR adds comprehensive architectural documentation for the ONEX Runtime and Two-Way Registration refactor. The documentation is exceptionally well-structured and establishes canonical patterns that will guide all future ONEX workflows. Recommendation: ✅ APPROVE with minor suggestions Strengths1. Outstanding Documentation Structure
2. Architectural ClarityThe design documents establish crystal-clear invariants:
These align perfectly with ONEX principles in CLAUDE.md. 3. Proper Separation of ConcernsThe ticket plan (31 tickets across 8 sections) shows excellent dependency management:
4. Event-Driven Orchestration PatternThe canonical workflow pattern is well-defined: This is the correct ONEX 4-node pattern and should be followed for all future workflows. Code Quality AssessmentDocumentation Quality: Excellent
Adherence to ONEX Principles: PerfectAll documentation follows CLAUDE.md requirements:
Technical Accuracy: HighThe as-is analysis correctly identifies:
Issues & SuggestionsMinor Issues1. File Path References Need UpdateFile: References use old - `/workspace/omnibase_infra3/docs/architecture/DECLARATIVE_EFFECT_NODES_PLAN.md`
- `/workspace/omnibase_infra3/docs/architecture/CURRENT_NODE_ARCHITECTURE.md`
- `/workspace/omnibase_infra3/contracts/fsm/dual_registration_reducer_fsm.yaml`Suggestion: Update to current paths or mark as "External Reference" if these are in a different repo. 2. Potential Inconsistency: Type Annotation ConventionsFile: The design documents use proper union syntax in code examples: causation_id: UUID | None = None
authenticated_principal: str | None = None✅ This is correct. No changes needed, but worth highlighting as a positive example. 3. Missing Validation: Message Envelope SchemaFile: The class ModelEnvelope(BaseModel):
model_config = ConfigDict(frozen=True, extra="forbid")Suggestion: Add note that this should use ONEX naming convention:
Per CLAUDE.md:
4. Documentation Versioning Strategy Not DefinedFile: Document has version 2.1.0 but no explanation of versioning scheme: Suggestion: Add versioning policy:
Security Considerations✅ Proper Error SanitizationThe handoff document correctly identifies error sanitization as infrastructure concern:
This aligns with CLAUDE.md error sanitization guidelines (never expose credentials, PII, etc.). ✅ Authentication/Authorization Mentioned
authenticated_principal: str | None = None
principal_claims: dict | None = NoneGood security-aware design for command validation in orchestrators.
|
| Category | Rating | Notes |
|---|---|---|
| Code Quality | N/A | Documentation only, no code changes |
| Documentation Quality | ⭐⭐⭐⭐⭐ | Exceptional - sets new standard |
| Architectural Soundness | ⭐⭐⭐⭐⭐ | Perfect alignment with ONEX principles |
| Test Coverage | ⭐⭐⭐⭐⭐ | Comprehensive testing strategy defined |
| Security | ⭐⭐⭐⭐ | Good security awareness, minor suggestions |
| Performance | ⭐⭐⭐⭐ | Well-considered, room for optimization notes |
| Maintainability | ⭐⭐⭐⭐⭐ | Clear separation of concerns, excellent ticket plan |
Overall: ⭐⭐⭐⭐⭐ APPROVED
Conclusion
This is excellent architectural work that establishes the canonical patterns ONEX needs. The documentation is thorough, well-structured, and demonstrates deep understanding of event-driven architecture, pure functional patterns, and the ONEX 4-node model.
The 31-ticket implementation plan is realistic and well-sequenced. The dependency graph ensures proper foundation-first development.
Recommendation:
- Address the 3 high-priority clarifications (file paths, F0/B2 interaction, domain derivation)
- Merge immediately after clarifications
- Use this as the canonical reference for all future ONEX workflows
Great work! This documentation will significantly improve ONEX development quality and consistency.
Review conducted following ONEX guidelines in CLAUDE.md
Reviewed by: Claude Sonnet 4.5 (PR Review Agent)
Date: 2025-12-19
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (6)
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md (3)
150-157: Clarify orchestrator's state-reading path.Section 8.1 states orchestrators "Read current state from projections" but the data flow diagram (section 2.2) doesn't explicitly show projections feeding back to the orchestrator. Add clarity: orchestrators read projections directly from storage (not via events), and this read path is outside the message flow.
357-365: Timeout handling approach is prescriptive but operationally vague.Section 8.2 recommends storing deadlines in projections and periodically querying for overdue entities, but doesn't specify:
- Query frequency and overhead expectations
- What "periodically" means operationally (every second? every minute?)
- Whether the orchestrator runs a background scan task or is driven by RuntimeTick events (see ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md, B6)
The ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (B6) introduces RuntimeTick—consider cross-referencing and clarifying the scheduler-driven approach here.
429-446: Testing requirements lack acceptance criteria.Section 12 lists test focus areas (determinism, idempotency, restart scenarios) but doesn't specify success metrics. For example:
- "Event-sequence determinism tests" — what does "passing" mean? (exact output match? state equivalence?)
- "Restart and duplicate delivery scenarios" — how many retry cycles? what's the acceptable error rate?
Consider cross-linking to ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (G1–G5) which details specific test acceptance criteria, or move detailed criteria to a separate testing spec.
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (2)
370-405: Open questions may block implementation; prioritize decisions early.Section 9 lists 7 open questions (command source, topic naming, result event flow, timeout location, test refactoring, handler registration timing, reducer invocation pattern). While it's good that these are surfaced explicitly, some may block Phase 1 (orchestrator creation):
- Command source (lines 374-378): Needed for orchestrator contract design
- Intent topic naming (lines 379-381): Needed for reducer integration
- Reducer invocation (lines 401-403): Affects orchestrator implementation
Consider adding a "Decision Required Before Phase 1" subsection with the 3 blocking questions, or flag which questions can be deferred to Phase 2.
325-334: Dependencies list is complete but lacks base class versions.Section 7 "Dependencies" lists required components (NodeOrchestrator, NodeEffect, NodeRuntime, intent models) with "Available" status, but doesn't specify where these are defined (omnibase_core version? import paths?). For implementation clarity, add:
- Import paths for base classes (e.g.,
from omnibase_core.nodes import NodeOrchestrator)- Expected method signatures or protocol references
- Any version constraints on omnibase_core
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (1)
11-44: Global constraints are clear and well-reasoned except for versioning ambiguity.Constraints 1–5 and 7 correctly establish invariants for pure reducers, orchestrator time ownership, runtime publishing, effect I/O isolation, and deterministic ordering. Constraint 6 (no versioned directories) requires clarification per adjacent comment. Constraint 7 (handler vs node terminology) appropriately distinguishes concerns.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (12)
docs/as_is/01_LAYERING_AND_TERMINOLOGY.md(1 hunks)docs/as_is/02_NODE_EXECUTION_SHAPES.md(1 hunks)docs/as_is/03_MESSAGING_AND_ENVELOPES.md(1 hunks)docs/as_is/04_EVENT_BUS_SHAPES.md(1 hunks)docs/as_is/05_RUNTIME_DISPATCH_SHAPES.md(1 hunks)docs/as_is/06_TWO_WAY_REGISTRATION_AS_IS_TRACE.md(1 hunks)docs/as_is/07_INTERFACE_CROSSWALK.md(1 hunks)docs/as_is/08_DECISION_POINTS_AND_UNANSWERED_QUESTIONS.md(1 hunks)docs/as_is/INDEX.md(1 hunks)docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md(1 hunks)docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md(1 hunks)docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md(1 hunks)
🧰 Additional context used
🧠 Learnings (33)
📓 Common learnings
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), not hash comments. Stamping must be idempotent and policy-driven.
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), and stamping must be idempotent and policy-driven. Do NOT use manual metadata blocks with hash comments.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-28T18:58:53.781Z
Learning: Remove all backward compatibility patterns and legacy support code; use proper ONEX patterns from day one
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/README.md : Follow canonical node directory structure with README.md, ARCHITECTURE_DECISIONS.md, protocols/, and versioned implementation directories (v1_0_0/)
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/README.md : Follow canonical node directory structure with README.md, ARCHITECTURE_DECISIONS.md, protocols/, and versioned implementation directories (v1_0_0/)
Applied to files:
docs/as_is/INDEX.mddocs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/as_is/07_INTERFACE_CROSSWALK.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Applied to files:
docs/as_is/INDEX.mddocs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Applied to files:
docs/as_is/INDEX.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ARCHITECTURE_DECISIONS.md : ARCHITECTURE_DECISIONS.md must document design rationale and decisions for the node implementation with clear reasoning for each choice
Applied to files:
docs/as_is/INDEX.mddocs/as_is/07_INTERFACE_CROSSWALK.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ : Node directory structure must follow canonical pattern: place README.md and ARCHITECTURE_DECISIONS.md at node root, organize versioned code in v1_0_0/ subdirectory
Applied to files:
docs/as_is/INDEX.md
📚 Learning: 2025-11-28T18:58:53.781Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-28T18:58:53.781Z
Learning: Organize models under `src/omnibase_core/models/` by domain including: base, cli, common, config, core, contracts, discovery, health, infrastructure, logging, metadata, nodes, operations, results, security, service, tools, validation, and workflows
Applied to files:
docs/as_is/INDEX.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Applied to files:
docs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Applied to files:
docs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Applied to files:
docs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/as_is/06_TWO_WAY_REGISTRATION_AS_IS_TRACE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Applies to agents/**/*.py : Implement ONEX-compliant agent architecture with four node types: Effect (External I/O), Compute (Pure transforms), Reducer (State/persistence), and Orchestrator (Workflow coordination)
Applied to files:
docs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/as_is/07_INTERFACE_CROSSWALK.mddocs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/as_is/06_TWO_WAY_REGISTRATION_AS_IS_TRACE.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Applied to files:
docs/as_is/01_LAYERING_AND_TERMINOLOGY.mddocs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/as_is/08_DECISION_POINTS_AND_UNANSWERED_QUESTIONS.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Applies to src/omninode_bridge/nodes/**/*.py : All nodes in omninode_bridge MUST use omnibase_core standards (ModelServiceEffect, ModelServiceCompute for effect/compute nodes; NodeOrchestrator, NodeReducer with mixins for orchestrator/reducer nodes)
Applied to files:
docs/as_is/07_INTERFACE_CROSSWALK.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-12-08T00:48:30.737Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_spi PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-08T00:48:30.737Z
Learning: Applies to src/omnibase_spi/protocols/nodes/*.py : Use Protocol naming convention `Protocol{Type}Node` for node protocols (e.g., `ProtocolComputeNode`, `ProtocolEffectNode`)
Applied to files:
docs/as_is/07_INTERFACE_CROSSWALK.md
📚 Learning: 2025-12-18T22:04:24.184Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T22:04:24.184Z
Learning: Applies to src/omnibase_core/**/*.py : Use EnumNodeKind for high-level architectural classification in the ONEX workflow (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR)
Applied to files:
docs/as_is/07_INTERFACE_CROSSWALK.md
📚 Learning: 2025-12-18T22:04:24.184Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T22:04:24.184Z
Learning: Maintain unidirectional data flow in ONEX four-node architecture: EFFECT → COMPUTE → REDUCER → ORCHESTRATOR
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Decompose intelligence operations into specialized ONEX nodes following a four-node pattern: Orchestrator (coordinate workflows), Reducer (manage state, FSM transitions), Compute (pure data processing), and Effect (external I/O)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: No backwards dependencies are allowed; data flow must be strictly unidirectional (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR) with no node depending on nodes that come after it in the flow
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/*.py : All ONEX node implementations must follow dependency injection and protocol-first design patterns as established in the node_cli canonical reference
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:24.207Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T17:23:24.207Z
Learning: REFACTOR mode: Perform scoped, semantic refactors based on plan or review findings. Permitted: Structural code changes without feature modification. Forbidden: Logic or feature changes.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: State management must only occur in REDUCER Nodes; other node types (EFFECT, COMPUTE, ORCHESTRATOR) must not maintain internal state
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/node.py : All ONEX nodes must include a `node.py` file implementing the main node entrypoint using the reducer pattern
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-18T22:04:24.184Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T22:04:24.184Z
Learning: Applies to src/omnibase_core/nodes/node_reducer.py : Use ModelIntent pattern for REDUCER nodes with FSM-driven state transitions
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Follow canonical patterns from reference implementations: use node_cli/v1_0_0/ as primary reference and node_kafka_event_bus/v1_0_0/ for complex backend patterns
Applied to files:
docs/as_is/04_EVENT_BUS_SHAPES.md
📚 Learning: 2025-12-06T22:21:32.649Z
Learnt from: CR
Repo: OmniNode-ai/omniagent PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-06T22:21:32.649Z
Learning: Applies to nodes/**/*.py : Use event bus mixins from `omnibase_core` for Kafka publishing instead of direct Kafka clients
Applied to files:
docs/as_is/04_EVENT_BUS_SHAPES.md
📚 Learning: 2025-12-18T22:04:24.184Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T22:04:24.184Z
Learning: Applies to src/omnibase_core/**/*.py : Use ModelEventEnvelope for inter-service event-driven communication
Applied to files:
docs/as_is/04_EVENT_BUS_SHAPES.mddocs/as_is/03_MESSAGING_AND_ENVELOPES.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Applies to src/omninode_bridge/events/**/*.py : Kafka event publishing MUST use OnexEnvelopeV1 format with 13 topics for event streaming at all workflow lifecycle stages
Applied to files:
docs/as_is/04_EVENT_BUS_SHAPES.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must use the node_kafka_event_bus as a secondary reference only for complex backend and event bus logic and advanced configuration patterns
Applied to files:
docs/as_is/04_EVENT_BUS_SHAPES.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contract.yaml : All ONEX node contract definitions must follow the linked document architecture pattern with contract.yaml linking to node_config.yaml and deployment_config.yaml as associated documents
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Applies to **/nodes/*/v*/contract.yaml : Node implementations must include contract.yaml with semantic versioning, node type (EFFECT/COMPUTE/REDUCER/ORCHESTRATOR), strongly typed I/O (input_model, output_model), and zero Any types
Applied to files:
docs/as_is/02_NODE_EXECUTION_SHAPES.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Applies to **/nodes/**/*.py : Name node classes following ONEX patterns: Effect nodes as Node{Name}Effect (e.g., NodeIntelligenceAdapterEffect), Compute nodes as Node{Name}Compute (e.g., NodeVectorizationCompute), Reducer nodes as Node{Name}Reducer (e.g., NodeIntelligenceReducer), Orchestrator nodes as Node{Name}Orchestrator (e.g., NodeIntelligenceOrchestrator)
Applied to files:
docs/as_is/02_NODE_EXECUTION_SHAPES.md
🔇 Additional comments (19)
docs/as_is/INDEX.md (1)
1-31: Index is clear and well-structured. Organization and topic descriptions are appropriate for helping readers navigate the as-is documentation suite.docs/as_is/02_NODE_EXECUTION_SHAPES.md (1)
1-131: Accurate mapping of node execution shapes with appropriate detail. References to Core base classes, contract-driven patterns, and Infra3 implementations are accurate. The document correctly identifies the intent system alignment as a key "shape alignment" point (lines 99-105) and appropriately flags the gap regarding runtime-dispatch patterns for separate documentation.docs/as_is/08_DECISION_POINTS_AND_UNANSWERED_QUESTIONS.md (1)
1-98: Well-structured parking lot document with appropriately scoped questions. The eight decision areas progress logically from foundational runtime/envelope choices (A-E) through ownership/systems integration (F-G) to registration-specific concerns (H). Question phrasing is clear and actionable, making this a useful reference for design evaluation. The document correctly positions itself as a prerequisite for PLAN-mode commitment (lines 3-4).docs/as_is/07_INTERFACE_CROSSWALK.md (1)
1-41: Comprehensive and well-organized crosswalk table. The table effectively maps concepts to concrete implementations across the three repos, making it a valuable reference for understanding the as-is architecture. The note clarifying that this records what exists (rather than asserting canonical status) is important, and the footnote correctly identifying "envelope/runtime/handler" as a recurring ambiguity aligns with the broader as-is documentation strategy (see 01_LAYERING_AND_TERMINOLOGY.md).docs/as_is/01_LAYERING_AND_TERMINOLOGY.md (1)
1-92: Excellent foundational terminology document with critical "same word, different thing" pitfalls clearly identified. The three-part structure (repo roles → ONEX vocabulary → pitfalls) effectively sets up readers to understand the broader architecture. The handler, envelope, and event bus distinctions are all accurate and appropriately detailed. The architecture review guidance (lines 88-92) provides actionable context for design discussions.docs/as_is/04_EVENT_BUS_SHAPES.md (1)
1-59: Clear and accurate description of event bus shapes across three layers. The document correctly identifies the Core base protocol (topic/key/value/headers), Infra3 implementations (InMemoryEventBus, KafkaEventBus), and SPI extensions (envelope-based and workflow-event-sourcing). The summary (lines 55-59) effectively captures the key architectural facts without over-prescribing.docs/as_is/05_RUNTIME_DISPATCH_SHAPES.md (1)
1-66: Precise description of two distinct runtime dispatch patterns with clear articulation of differences. The document effectively explains Core's transport-agnostic EnvelopeRouter (routing by EnumHandlerType, returning ModelOnexEnvelope) versus Infra3's RuntimeHostProcess (routing dict operation envelopes by string prefix, event-bus-based). The relationship summary (lines 56-66) correctly identifies message shape, handler identity, response shape, and scope as key differentiators. The guidance that design docs must specify which runtime plane is being targeted (lines 65-66) is a valuable architectural principle.docs/as_is/06_TWO_WAY_REGISTRATION_AS_IS_TRACE.md (1)
1-61: Concrete and accurate trace of two-way registration workflow as currently implemented. The document effectively illustrates the reducer/effect split (NodeDualRegistrationReducer emitting Core intents, node_registry_effect executing I/O) and correctly identifies the two messaging planes involved (event bus and Infra runtime host). The "What's important" section (lines 52-61) provides valuable summary of key architectural facts that future designs must explicitly address (where reducer runs, where effect runs, which runtime plane, which envelope model). This trace provides necessary grounding for evaluating architecture proposals.docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md (2)
78-84: Clarify validation responsibility for domain rules.Line 78 states "Reducers do not evaluate time or perform validation logic" but does this include domain validation (e.g., node state preconditions, configuration constraints)? The current phrasing could be interpreted as forbidding all validation, which would push all validation to orchestrators.
If reducers should validate event payloads before folding, clarify this distinction explicitly.
1-10: Design is comprehensive and well-aligned with ONEX patterns.The document clearly establishes foundational principles for event-driven workflows, correctly implements the 4-node architecture (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR) with unidirectional data flow, and enforces pure reducers without I/O or time reads. Terminology is distinct and patterns are well-reasoned. The design successfully avoids backward dependencies and assigns responsibility correctly (time to orchestrators, I/O to effects, state folding to reducers).
docs/as_is/03_MESSAGING_AND_ENVELOPES.md (1)
1-96: As-is inventory is accurate and provides useful context.This document correctly catalogs the existing envelope shapes (Core ModelOnexEnvelope, Core ModelEventEnvelope[T], event bus message + headers, Infra3 concrete models, Infra3 dict-based envelopes, SPI protocols) and correctly identifies that multiple incompatible wrapper shapes currently coexist. The conclusion—"envelope is plural today"—is the key finding that the design documents (DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md and ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md) directly address by standardizing on a canonical envelope (A2a in the ticket plan, section 5.1 in design doc).
This inventory serves as the "problem statement" motivating the canonical envelope standard. No changes needed.
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (2)
284-320: Migration phases are well-structured and realistic.The 4-phase breakdown (Orchestrator, Effect, Integration, Validation) is logically sequenced. Phase interdependencies are clear. Estimated durations (9-11 days total) appear realistic given the scope. Risk factors (open questions, NodeRuntime integration, test refactoring) are appropriately flagged.
1-28: Handoff clearly articulates the architectural violation and target state.The document effectively establishes that the current 3,065-line node.py violates ONEX architecture by mixing orchestration, reduction, and effect concerns, and clearly specifies the target 3-node decomposition. The ASCII diagram (section 3.1) effectively visualizes the intended data flow. This handoff provides sufficient context for stakeholders to understand scope and for developers to begin Phase 1 work.
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (6)
36-38: Global constraint conflicts with handoff document.Line 36 states "No versioned directories - No v1_0_0, v2, etc." but HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (line 202) specifies creating
node_registration_orchestrator/v1_0_0/with explicit versioned subdirectories.Either:
- Clarify that "no versioned directories" means "no semantic version subdirectories in canonical pattern" (v1_0_0 is structural version, not semantic), or
- Update the handoff to use semantic versioning without structural v1_0_0 directories, or
- Revise the global constraint.
This ambiguity could block Phase 1 of the migration (orchestrator creation). Recommend explicit clarification linking to learnings on canonical node structure.
344-363: Durable timeout handling is well-specified and restart-safe.Section C2 effectively addresses a critical correctness concern: timeout events must not duplicate after restarts. The "canonical approach: emitted_at markers" (lines 358–363) with per-timeout-type emission tracking (ack_timeout_emitted_at, liveness_timeout_emitted_at) is a sound pattern. The integration test requirement (restart orchestrator after deadline, verify exactly one timeout event) is specific and verifiable.
426-450: Effect idempotency strategy is comprehensive and handles edge cases.Section E1 correctly identifies dual idempotency requirements: primary (intent_id) and secondary (natural key) for duplicate detection. The natural key conflict handling—"if intent_id differs but natural key matches, treat as duplicate"—correctly handles re-emitted intents with different message_ids (from retries). The noted exception ("payload differs, needs explicit handling") is appropriately flagged. This strategy is sound for at-least-once delivery.
478-499: Projector idempotency layer is clearly separated from runtime idempotency.Section F0 correctly introduces two independent idempotency layers: runtime (B3, prevents duplicate handler execution) and projector (F0, prevents stale/out-of-order projection writes). Both are required for correctness. The ordering rule—per-entity monotonic based on (partition, offset) or sequence—is clear. The offset-aware idempotent write requirement (lines 494–499) is verifiable and restart-safe.
584-606: Dependency order is acyclic and supports parallel execution.The dependency graph (A → B → C → D → E → F → G → H) is acyclic and allows parallel execution within levels. The explicit statement "Tickets at the same dependency level may be executed in parallel if they do not introduce contradictory contracts or shared-interface churn" (lines 604–605) correctly balances parallelism with correctness. This is well-structured for concurrent work.
1-100: Ticket plan is comprehensive, well-prioritized, and establishes canonical ONEX runtime architecture.The plan correctly decomposes the ONEX runtime into 8 ordered sections, establishes 7 global invariants (with one minor ambiguity noted separately), and specifies 31 concrete tickets with acceptance criteria. Priorities are appropriate (A–D P0, E–G mixed P0/P1/P2, H P1). Cross-references between tickets are correct. The appendix rationale (lines 611–635) effectively justifies design choices. This document provides a solid foundation for 9–11 weeks of structured implementation.
Fix all 9 review issues from coderabbitai and Claude reviews: DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md (v2.1.1): - Clarify orchestrator's state-reading path (Section 8.1) - Add RuntimeTick cross-reference for timeout handling (Section 8.2) - Cross-link testing requirements to G1-G5 tickets (Section 12) ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md: - Clarify F0 ↔ B2 projector invocation sequence - Add explicit domain derivation rule for B1a - Clarify constraint 6 (versioned directories) with legacy migration note HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md: - Fix /workspace/omnibase_infra3/ paths to relative paths - Add "Decisions Required Before Phase 1" subsection - Add import paths for base classes in dependencies
PR Review: Canonical ONEX Runtime & Registration Architecture PlanOverall AssessmentStatus: ✅ APPROVED with minor recommendations This PR establishes critical architectural documentation that will serve as the canonical reference for all future ONEX workflows. The documentation quality is exceptional, and the approach is methodically sound. Strengths1. Architectural Clarity (Excellent)
2. Implementation Plan (Strong)
3. ONEX Compliance (Excellent)Per
4. Pattern AlignmentThe design aligns with existing ONEX patterns:
Areas for Improvement1. Envelope Model Convergence (Minor)Issue: Multiple envelope models coexist ( Location: Recommendation:
2. Circuit Breaker Thread Safety (Clarification Needed)Issue: Location: Design doc section 9 (Effect Pattern) mentions "circuit breakers" but doesn't reference the mixin pattern Recommendation:
3. Error Code Mapping Clarity (Minor Enhancement)Issue: The design doesn't explicitly reference Location: Effect pattern section doesn't mention transport-aware error code selection Recommendation:
4. Correlation ID Generation (Best Practice Addition)Issue: A2a envelope spec includes Location: Recommendation: Add to A2a acceptance criteria per
5. Backwards Compatibility Note (Policy Reminder)Issue: Migration section H1 mentions "cutover points" but doesn't explicitly invoke ONEX's no-backwards-compatibility policy Location: Recommendation: Add clarification: Security Considerations✅ Proper Sanitization
✅ Secrets Management
Testing CoverageStrong Test Strategy
Recommendation: Add Pattern Validator TestsPer ticket A2 (Execution Shapes), add to acceptance criteria:
Performance Considerations✅ Good Patterns
Minor Concern: Projection Read PathIssue: C0 mentions orchestrators query projections from storage (PostgreSQL) synchronously Performance Risk: N+1 query pattern if orchestrator checks state per-message Recommendation: Add to C0 acceptance criteria:
Documentation QualityExceptional
Suggestion: Add Decision LogConsider adding
This provides historical context when onboarding new team members. Compliance with ONEX Policies✅ Agent-Driven Development
✅ No Versioned Directories (Future)
✅ Strong Typing Commitment
Linear Ticket Quality✅ Well-Structured
Recommendation: Add Cross-Ticket ValidationConsider adding a "meta-ticket" that validates:
Final Recommendations
ConclusionThis is exemplary architectural work that establishes the foundation for correct, maintainable, and observable ONEX workflows. The methodical approach (as-is analysis → design → ticket plan → handoff) demonstrates mature engineering practice. The documentation will prevent the architectural drift and "shape confusion" that plagued earlier implementations. Approve and merge. Reviewer: Claude Sonnet 4.5 (agent-pr-review) |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (1)
212-227: Add more examples to the domain derivation rule for clarity.The domain derivation rule (lines 212-219) is logically sound but complex. Currently only three examples are provided. To help implementers apply this rule correctly, add 5-7 examples covering:
- Nested module paths (e.g.,
registration.spi.events.NodeRegistrationAccepted)- Cross-domain message consumption scenarios (to show when domain matching fails)
- Edge case: single-segment module paths
- Effect node intents vs orchestrator events (same domain but different patterns)
This will prevent implementation mistakes during B1a (Message Type Registry) and reduce review feedback cycles.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (3)
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md(1 hunks)docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md(1 hunks)docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md(1 hunks)
🧰 Additional context used
🧠 Learnings (20)
📓 Common learnings
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), not hash comments. Stamping must be idempotent and policy-driven.
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), and stamping must be idempotent and policy-driven. Do NOT use manual metadata blocks with hash comments.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/README.md : Follow canonical node directory structure with README.md, ARCHITECTURE_DECISIONS.md, protocols/, and versioned implementation directories (v1_0_0/)
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-28T18:58:53.781Z
Learning: Remove all backward compatibility patterns and legacy support code; use proper ONEX patterns from day one
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Applies to agents/**/*.py : Implement ONEX-compliant agent architecture with four node types: Effect (External I/O), Compute (Pure transforms), Reducer (State/persistence), and Orchestrator (Workflow coordination)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Decompose intelligence operations into specialized ONEX nodes following a four-node pattern: Orchestrator (coordinate workflows), Reducer (manage state, FSM transitions), Compute (pure data processing), and Effect (external I/O)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Implement Kafka event-driven architecture with proper topic naming using prefix dev.archon-intelligence. and proper event flow pattern with Effect nodes consuming events, processing, and publishing results with Dead Letter Queue routing
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contract.yaml : All ONEX node contract definitions must follow the linked document architecture pattern with contract.yaml linking to node_config.yaml and deployment_config.yaml as associated documents
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-19T15:50:54.084Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T15:50:54.084Z
Learning: Maintain strict data flow in ONEX four-node architecture: EFFECT → COMPUTE → REDUCER → ORCHESTRATOR with no backwards dependencies
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: No backwards dependencies are allowed; data flow must be strictly unidirectional (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR) with no node depending on nodes that come after it in the flow
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/*.py : All ONEX node implementations must follow dependency injection and protocol-first design patterns as established in the node_cli canonical reference
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: State management must only occur in REDUCER Nodes; other node types (EFFECT, COMPUTE, ORCHESTRATOR) must not maintain internal state
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Maintain complete event history with Kafka persistent storage for all agent routing, manifest injection, and execution log events
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ARCHITECTURE_DECISIONS.md : ARCHITECTURE_DECISIONS.md must document design rationale and decisions for the node implementation with clear reasoning for each choice
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/node.py : All ONEX nodes must include a `node.py` file implementing the main node entrypoint using the reducer pattern
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
🔇 Additional comments (5)
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md (2)
4-4: Verify version number matches PR intent.Line 4 states version "2.1.1" but PR objectives specify "2.1.0" as the expected version. Clarify whether this is an intentional patch bump or a discrepancy that needs correction.
68-421: Architecture design is sound and well-aligned with canonical ONEX patterns.The design principles (section 0), handler contracts (section 3), message model (section 5), and pattern definitions (sections 6-10) all correctly implement the ONEX 4-node architecture with proper separation of concerns: pure reducers (no I/O, no time), orchestrators owning workflow time, effects isolated to I/O, and deterministic ordering. The handler protocol pattern and output model are appropriately rigorous. Based on learnings, this aligns with canonical node standards.
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (2)
36-47: Clarify v1_0_0 directory naming: is it required for handoff compliance?Line 36 states "No versioned directories - No v1_0_0, v2, etc." The clarification at lines 40-47 explains this applies only to NEW components and suggests using
contract_versionfield instead of directory hierarchy.However, the handoff document (File 2, lines 189-214) proposes creating new nodes with
v1_0_0directories:
node_registration_orchestrator/v1_0_0/node_registry_effect/v1_0_0/Cross-document clarity is needed: Does the v1_0_0 directory structure in the handoff represent a legacy transition pattern (acceptable), or does it violate the constraint and need revision to remove versioned directories?
If v1_0_0 is acceptable for this migration, update the constraint clarification to explicitly say so. If not, the handoff needs to be updated to remove versioned directories and rely purely on
contract_versionin contract.yaml.
1-651: Comprehensive and well-structured ticket plan with clear dependencies.The plan successfully establishes authoritative architectural constraints and breaks down implementation into 31 tickets across eight sections with explicit dependency ordering. The acceptance criteria for each ticket are specific and testable (e.g., "Execution Shape Validator fails if reducer handler returns events"). The clarifications on global constraints (lines 40-47 on versioning, lines 212-227 on domain derivation) are helpful. The dependency graph (lines 628-644) is clear and enables parallel execution where appropriate. This provides a solid foundation for implementation.
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (1)
187-214: Remove ARCHITECTURE_DECISIONS.md requirement from this handoff.The learnings cited a
.cursor/rules/node_standards.mdcfile as the source for the ARCHITECTURE_DECISIONS.md requirement, but this file does not exist in the repository. The actual handoff document Section 5.1 specifies the complete directory structure without including ARCHITECTURE_DECISIONS.md. No ONEX node standards documentation requiring this file exists in this codebase.Likely an incorrect or invalid review comment.
Address remaining PR #56 review feedback: - Section 7: Add expanded import paths with base classes, intent models, runtime, and SPI protocols - Section 7: Add version requirements (omnibase_core >= 0.5.0, omnibase_spi >= 0.4.0) - Section 7: Add expected method signatures for NodeRuntime and intent handlers - Section 9: Rename to "Open Questions and Decision Process" - Section 9.1: Add RACI matrix for blocking decisions with target dates - Section 9.2: Organize deferrable questions subsection
PR Review: Canonical ONEX Runtime & Registration Architecture DocumentationExecutive SummaryThis PR adds comprehensive architectural documentation for the ONEX Runtime and Two-Way Registration refactor. The documentation quality is excellent and demonstrates deep systems thinking. However, there are several critical issues that must be addressed before merge. Recommendation: ✅ Strengths1. Exceptional Documentation StructureThe "as-is" analysis documents are exemplary:
This is a model for how to approach architectural refactoring. 2. Strong Architectural PrinciplesThe design document (DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md v2.1.1) establishes solid foundations:
These align perfectly with ONEX principles. 3. Comprehensive Ticket Planning31 tickets across 8 sections with proper dependencies, priorities, and acceptance criteria. The planning demonstrates excellent work breakdown and risk management. 🚨 Critical Issues1. Version Number Inconsistency (MUST FIX)Issue: Version mismatch between PR body and document content.
Action Required: # Update PR description to match document version, or vice versa
# Recommended: Update document to v2.1.0 to match PR claimRationale: Version consistency is critical for canonical documentation. 2. CLAUDE.md Policy Violation: Versioned Directories (BLOCKING)Issue: The ticket plan explicitly contradicts CLAUDE.md policy on versioned directories. CLAUDE.md Policy: ### File & Class Naming Conventions
| Type | File Pattern | Class Pattern | Example |
|------|-------------|---------------|---------|
| Node | `node.py` | `Node<Name><Type>` | See note below |The policy explicitly states: "No v1_0_0, v2, etc. - Versioning is logical, not structural" Ticket Plan Statement (ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md:36-47): 6. No versioned directories
- No v1_0_0, v2, etc.
- Versioning is logical, not structural
Clarification:
- This constraint applies to NEW components created under this plan
- Existing v1_0_0 directories (e.g., nodes/<name>/v1_0_0/) are legacy patterns
from earlier architectural decisions that will be migratedProblem: The ticket plan acknowledges existing
Action Required:
Rationale: Canonical documentation cannot contradict the project's primary development policy without explicit reconciliation. 3. Circular Reference Risk (MEDIUM)Issue: CLAUDE.md references CLAUDE.md References (lines 8-14): **Detailed Patterns**: See `docs/patterns/` for implementation guides:
- `container_dependency_injection.md` - Complete DI patterns
- `error_handling_patterns.md` - Error hierarchy and usage
- ...This PR adds:
Problem: Future developers won't know about the new canonical design docs unless CLAUDE.md points to them. Action Required: ## 📐 Architecture Design Documents
**Canonical Designs**: See `docs/design/` for authoritative architecture patterns:
- `DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md` - Event-driven orchestration and reducer pattern (v2.1.1)
- `ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md` - 31-ticket implementation plan
**Current State Analysis**: See `docs/as_is/` for architectural baseline:
- `INDEX.md` - Navigation guide to as-is documentation
- Layering, terminology, node execution, messaging, runtime dispatch analysis4. Linear Ticket Status Verification (DOCUMENTATION GAP)Issue: PR claims all 31 tickets created with proper dependencies, but provides no verification mechanism. PR Description Claim:
Missing:
Action Required: # Add ticket verification document
docs/design/LINEAR_TICKETS_VERIFICATION.md
Content:
- Table of all 31 ticket IDs with Linear URLs
- Dependency graph validation
- Priority distribution (P0: X, P1: Y, P2: Z)
- Script or instructions for validating ticket linksRationale: Canonical plans must be verifiable. "Trust but verify" for ticket creation claims.
|
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (1)
441-450: Specify decision owners, target dates, and facilitation process—RACI matrix is structurally sound but lacks execution details.The RACI matrix correctly identifies roles (Tech Lead accountable, Platform Team consulted, All Devs informed) and blocking decisions, but cannot drive action without concrete ownership and timeline. Lines 445–447 show "TBD" for Responsible; line 449 references ADRs but doesn't integrate ADR creation into the decision workflow; target dates ("Before Phase 1") lack specificity.
Required additions:
- Assign a named owner for each decision (replace TBD on lines 445–447)
- Set actual calendar dates for decision completion (e.g., "2025-12-20")
- Document decision method: who proposes, how is consensus tested, who escalates if stuck
- Link to a scheduled decision-review meeting with specific date/time
- Integrate ADR creation into the decision workflow, not as a post-hoc step
Phase 1 cannot begin without this clarity. Currently, teams may implement contradictory approaches for Command Source, Intent Topics, and Reducer Invocation, creating rework.
🧹 Nitpick comments (4)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (4)
390-414: Add concrete test examples and file structure to testing plan.The test categories are well-identified, but lack implementation guidance. Suggest adding examples and file organization to prevent implementers from guessing structure and potentially writing non-ONEX-compliant tests.
Recommended additions:
Test file structure example:
tests/ ├── unit/ │ ├── test_node_registration_orchestrator.py │ ├── test_node_dual_registration_reducer.py │ └── test_registry_effect_handlers.py ├── integration/ │ └── test_registration_workflow_e2e.py └── contracts/ └── test_dual_registration_reducer_fsm.pySample unit test (unit test structure for pure orchestrator):
async def test_orchestrator_validates_command_before_reducer_invocation(): # Arrange: Create invalid command # Act: Call process_command() # Assert: Should raise validation error without calling reducerSample integration test (command → orchestrator → reducer → effect):
async def test_full_registration_flow_command_to_handlers(): # Mock: Kafka topic producer # Arrange: Create RegisterNodeCommand # Act: Publish command, wait for result events # Assert: Handler was called via runtime with correct intentFSM contract test approach (line 411):
def test_dual_registration_reducer_fsm_transitions(): # Load FSM contract from YAML # For each transition: verify reducer emits correct intent # Verify invalid transitions are rejectedCompensation testing (mentioned in design doc):
async def test_partial_failure_triggers_compensation(): # Simulate Consul failure, Postgres success # Assert: Compensation intent emitted for Postgres
473-487: Timeline estimate should explicitly account for blocking decision resolution.The 9–11 day estimate is based on Phase 1 starting "after decisions are resolved," but Section 9 provides no specific dates or decision facilitation process. If decisions slip, the entire timeline is invalidated with no contingency buffer.
Recommended adjustments:
Add decision resolution to critical path:
- Example: "Decision Review Meeting: 2025-12-20 → ADR published: 2025-12-21 → Phase 1 start: 2025-12-23"
- This adds 1–2 days to overall timeline
Link timeline to Section 9 decisions:
- Currently, timeline is independent of decision process; should reference specific decision target dates
Add contingency:
- Current estimate is best-case (9 days)
- Suggest worst-case range: "9–14 days (excluding decision delays)"
Specify integration risk mitigation:
- Line 485: "Integration issues with NodeRuntime may surface"
- Suggest: "Allocate 1 day post-Phase-2 for NodeRuntime compatibility fixes"
The risk acknowledgment is good; making dependencies and contingencies explicit will improve planability.
490-499: Specify stakeholder communication plan for PR #52 rejection.Line 498 states "Do NOT merge PR #52," which is clear but may create friction. The current PR represents work-in-progress with potentially significant time invested. Recommend a more structured change-management approach.
Suggested additions:
Communication plan:
- Who notifies the PR author (and when)?
- What is the message (link this handoff + invitation to collaborate on refactored approach)?
- Is there a 1:1 discussion scheduled?
Reuse opportunities:
Collaboration model:
- Invite PR author to contribute to Phase 1/Phase 2 implementation?
- Or is this a learning/reference only?
This softens the "do not merge" message and acknowledges the work while maintaining architectural integrity.
1-134: Verify proposed directory structure aligns with node_cli canonical patterns.The document correctly applies ONEX 4-node architecture principles (pure REDUCER/ORCHESTRATOR, I/O-isolated EFFECT, unidirectional data flow). However, it should explicitly verify that the proposed directory structure (Section 5) matches the canonical patterns established in
node_cli.Recommended additions:
Reference node_cli canonical structure:
- Per learnings,
node_cliis the source of truth for directory layout, contract patterns, code generation- Add note: "Directory structure proposed below follows the node_cli canonical patterns for ORCHESTRATOR and EFFECT nodes"
- Or note any deviations from node_cli and justify them
Cross-document consistency check:
- This handoff references
DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md(line 504) andONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md- These are added in the same PR #56 (per objectives)
- Suggest: Add brief note that consistency has been verified across the three documents (design, ticket plan, handoff)
Contracts and schema decisions:
- Learnings mention each ONEX node needs
ARCHITECTURE_DECISIONS.mdandSCHEMA_DECISIONS.md- Should the new orchestrator and effect nodes include these files?
- Consider adding to Section 5 file structure
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (1)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md(1 hunks)
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), not hash comments. Stamping must be idempotent and policy-driven.
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), and stamping must be idempotent and policy-driven. Do NOT use manual metadata blocks with hash comments.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-28T18:58:53.781Z
Learning: Remove all backward compatibility patterns and legacy support code; use proper ONEX patterns from day one
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Applies to agents/**/*.py : Implement ONEX-compliant agent architecture with four node types: Effect (External I/O), Compute (Pure transforms), Reducer (State/persistence), and Orchestrator (Workflow coordination)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ARCHITECTURE_DECISIONS.md : ARCHITECTURE_DECISIONS.md must document design rationale and decisions for the node implementation with clear reasoning for each choice
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contract.yaml : All ONEX node contract definitions must follow the linked document architecture pattern with contract.yaml linking to node_config.yaml and deployment_config.yaml as associated documents
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Decompose intelligence operations into specialized ONEX nodes following a four-node pattern: Orchestrator (coordinate workflows), Reducer (manage state, FSM transitions), Compute (pure data processing), and Effect (external I/O)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:37.719Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T16:32:37.719Z
Learning: AUTONOMOUS_TASK mode: Run the full RESEARCH → REVIEW loop with no human input under pre-approved scope. Entry criteria: approved plan and no open questions. Use fail-fast ESCALATE on blockers.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:24.207Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T17:23:24.207Z
Learning: AUTONOMOUS_TASK mode: Run the full RESEARCH → REVIEW loop with no human input under pre-approved scope. Entry criteria: Approved plan with no open questions. Fail-fast ESCALATE on blockers.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-19T15:50:54.084Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T15:50:54.084Z
Learning: Maintain strict data flow in ONEX four-node architecture: EFFECT → COMPUTE → REDUCER → ORCHESTRATOR with no backwards dependencies
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/*.py : All ONEX node implementations must follow dependency injection and protocol-first design patterns as established in the node_cli canonical reference
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: State management must only occur in REDUCER Nodes; other node types (EFFECT, COMPUTE, ORCHESTRATOR) must not maintain internal state
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
Address PR #56 review feedback (CodeRabbit critical issue): - Add prominent warning that refactor requires omnibase_core >= 0.5.0 - Add release status noting 0.5.3 is imminent (PR #216) - Update dependency table to show "Requires 0.5.x" status - Rename "Import Paths" to "Target Import Paths" with version notes - Add warning about legacy classes (NodeEffectLegacy, etc.)
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (1)
405-430: Testing requirements are reasonable but lack specific test scenarios.The testing matrix (lines 405–430) correctly identifies that unit tests should focus on pure logic (no I/O mocking needed for orchestrator and reducer) and integration tests should cover the full flow. However, consider adding specific test cases:
- Idempotency: Re-submission of the same command produces the same state (critical for registration).
- Partial failure: One backend succeeds, the other fails—what is the final workflow state?
- FSM contract validation: Are all documented state transitions actually tested?
- Handler timeout: What happens if a handler exceeds timeout at the Effect node level?
These are deferrable to Phase 4 (Validation/Cleanup), but documenting them now ensures they're not missed.
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (1)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md(1 hunks)
🧰 Additional context used
🧠 Learnings (18)
📓 Common learnings
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), not hash comments. Stamping must be idempotent and policy-driven.
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), and stamping must be idempotent and policy-driven. Do NOT use manual metadata blocks with hash comments.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-28T18:58:53.781Z
Learning: Remove all backward compatibility patterns and legacy support code; use proper ONEX patterns from day one
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Applies to agents/**/*.py : Implement ONEX-compliant agent architecture with four node types: Effect (External I/O), Compute (Pure transforms), Reducer (State/persistence), and Orchestrator (Workflow coordination)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ARCHITECTURE_DECISIONS.md : ARCHITECTURE_DECISIONS.md must document design rationale and decisions for the node implementation with clear reasoning for each choice
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contract.yaml : All ONEX node contract definitions must follow the linked document architecture pattern with contract.yaml linking to node_config.yaml and deployment_config.yaml as associated documents
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Decompose intelligence operations into specialized ONEX nodes following a four-node pattern: Orchestrator (coordinate workflows), Reducer (manage state, FSM transitions), Compute (pure data processing), and Effect (external I/O)
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:37.719Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T16:32:37.719Z
Learning: AUTONOMOUS_TASK mode: Run the full RESEARCH → REVIEW loop with no human input under pre-approved scope. Entry criteria: approved plan and no open questions. Use fail-fast ESCALATE on blockers.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:31:48.648Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/checklist_rule.md:0-0
Timestamp: 2025-11-24T16:31:48.648Z
Learning: Applies to **/work_tickets/**/*.yaml : Document workaround strategies for blockers when dependencies create chicken-egg problems, including acceptance criteria (temporary_until_regeneration) and cleanup tickets
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:31:48.648Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/checklist_rule.md:0-0
Timestamp: 2025-11-24T16:31:48.648Z
Learning: Document migration requirements when upgrading from Checklist Rule v3 to v4: add dependencies, blockers, relationships, and work_context sections to existing tickets
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-19T15:50:54.084Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T15:50:54.084Z
Learning: Maintain strict data flow in ONEX four-node architecture: EFFECT → COMPUTE → REDUCER → ORCHESTRATOR with no backwards dependencies
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/*.py : All ONEX node implementations must follow dependency injection and protocol-first design patterns as established in the node_cli canonical reference
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: State management must only occur in REDUCER Nodes; other node types (EFFECT, COMPUTE, ORCHESTRATOR) must not maintain internal state
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
🔇 Additional comments (3)
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (3)
1-30: Clear problem statement and strong architectural rationale.The executive summary effectively establishes the scope and severity of the issue. The current 3,065-line monolithic
node.pyviolating ONEX architecture is well-documented, and the target 4-node decomposition (Reducer, Orchestrator, Effect) is architecturally sound and well-justified.
77-173: Architecture design and intent-based communication model are clear and correct.The target architecture diagram (lines 81–133) correctly implements the ONEX 4-node pattern with unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR). The intent-based communication example (lines 146–172) clearly shows the transition from anti-pattern (direct handler calls) to correct pattern (intent emission and runtime execution).
The architectural invariants (lines 135–145) are well-grounded in ONEX principles and match the standards documented in retrieved learnings.
218-278: File specifications provide clear implementation templates.The proposed class signatures and docstrings (lines 218–278) give implementers concrete starting points. The separation of orchestrator logic (command validation, reducer invocation, workflow coordination) and effect logic (intent execution via runtime handlers) is architecturally correct.
One note: Lines 265–268 and 271–277 show simplified intent handler signatures. Ensure that the actual
NodeRuntime.execute_handler()signature in v0.5.0 matches before implementation starts (cross-check with Section 7 verification).
PR Review: Canonical ONEX Runtime & Registration Architecture DocumentationSummaryThis PR adds comprehensive architectural documentation for the ONEX Runtime and Two-Way Registration refactor. The documentation is excellent and represents a thorough, well-structured approach to establishing canonical patterns for ONEX workflows. Verdict: ✅ APPROVE with minor suggestions Strengths 🎯1. Exceptional Documentation StructureThe three-tier documentation approach is exemplary:
2. Strong Architectural PrinciplesThe design principles in DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md are rock-solid:
3. Comprehensive Ticket PlanningThe 31-ticket implementation plan demonstrates proper dependency sequencing, clear priorities (P0/P1/P2), explicit acceptance criteria, global architectural constraints, and Linear integration. This is exactly the kind of planning required for a refactor of this magnitude. 4. Current State AwarenessThe as-is documents demonstrate deep understanding with explicit "same word, different thing" pitfalls, concrete file/class mappings, and honest unresolved architectural questions. 5. Canonical Envelope & Topic TaxonomyThe proposed envelope model (A2a) and topic taxonomy (A2b) provide required traceability fields and standardized topic naming, resolving the current "multiple envelope families" problem. Areas for Improvement 🔧1. Execution Shape Validator Implementation DetailsIssue: Ticket A2 describes what the validator should catch, but lacks implementation guidance. 2. Correlation ID Propagation ExamplesIssue: No concrete examples of how correlation IDs flow through the system. 3. Error Handling Patterns for Pure ReducersIssue: Doesn't specify how reducers handle invalid events or malformed data. 4. Idempotency Key Generation StrategyIssue: Ticket B3 mentions idempotency guards but doesn't specify key generation strategy. 5. Testing Strategy CompletenessIssue: No explicit "testing pyramid" guidance for canonical patterns. 6. Migration Risk AssessmentIssue: Handoff identifies architectural violations but no risk mitigation strategy. Security Considerations 🔒
Performance Considerations ⚡
Documentation Quality 📚
ONEX Compliance ✓
Final RecommendationsMust Address Before Merge: None - This is documentation-only and provides immense value as-is Should Address in Follow-Up PRs: All 6 suggestions above plus 3 security/performance considerations Conclusion: This PR represents exceptional architectural documentation and should be merged immediately. The suggestions above are enhancements, not blockers. Strong approve. Merge when ready. 🚀 Reviewed by: Claude Sonnet 4.5 (Code Review Agent) |
Wave-based execution plan mapping 31 tickets across 7 waves for maximum parallelization using 5 omnibase_core + 4 omnibase_infra repos. Includes: - Complete ticket code → Linear ID mapping (A1→OMN-931, B1→OMN-934, etc.) - 7 execution waves with dependency constraints - Critical path identification - Quick reference tables with Linear links
PR Review: Canonical ONEX Runtime & Registration Architecture PlanSummaryThis PR adds comprehensive documentation for the ONEX Runtime and Two-Way Registration refactor, establishing canonical patterns for all future ONEX workflows. The documentation is exceptionally well-structured and demonstrates deep architectural thinking. ✅ Strengths1. Architectural Rigor
2. Documentation Quality
3. ONEX Compliance
🔍 Issues & RecommendationsCritical (Must Address)1. Version Inconsistency in Design DocumentFile: - Version: 2.1.1
+ Version: 2.1.0Issue: PR description states "Design document version is 2.1.0" but file shows 2.1.1. The ticket plan references v2.1.0 (line 13 of PR description). Recommendation: Standardize on 2.1.0 as documented in PR description, or update all references to 2.1.1 with changelog. 2. Type Annotation Style ViolationPattern: Several documents show According to CLAUDE.md Type Annotation Conventions:
Files to audit:
Example from DESIGN doc line 276: # Current (not preferred):
causation_id: UUID | None = None # ✅ Correct
# But ensure no examples use:
causation_id: Optional[UUID] = None # ❌ Avoid3. Nullable Type Annotation Missing in Ticket PlanFile: Lines 210, 284: Handler context shows Recommendation: Add explicit note in A2a (Message Envelope ticket) referencing CLAUDE.md nullable type conventions: ### A2a. Canonical Message Envelope
...
Type Annotation Requirements:
- Use X | None syntax for nullable fields (not Optional[X])
- Reference: CLAUDE.md Type Annotation ConventionsHigh Priority4. Error Sanitization Not MentionedContext: CLAUDE.md has extensive error sanitization guidelines (correlation IDs, avoiding secrets in errors) Missing: No mention of error sanitization in:
Recommendation: Add to ticket E2 (Compensation and Retry Policy): Error Handling Requirements:
- Follow CLAUDE.md error sanitization guidelines
- Include correlation_id in all error context
- Never expose credentials, PII, or secrets in error messages
- Use appropriate InfraError subclasses (InfraConnectionError, InfraTimeoutError, etc.)
- Reference: CLAUDE.md "Error Sanitization Guidelines"5. Circuit Breaker Pattern Reference MissingContext: CLAUDE.md documents Missing: No reference to circuit breaker mixin in:
File: Recommendation: Update E1 acceptance criteria: ### E1. Registry Effect (I/O Only)
Acceptance:
- Duplicate intents cause no harmful side effects
- Circuit breaker behavior verified
+ - Uses MixinAsyncCircuitBreaker per CLAUDE.md patterns
+ - Circuit breaker configured per transport type (DATABASE, HTTP, etc.)
+ - Thread-safe circuit breaker lock usage enforced
- All intents include: intent_id, entity_id, registration_id6. Agent-Driven Development Not AppliedCLAUDE.md Policy: "ALL CODING TASKS MUST USE SUB-AGENTS - NO EXCEPTIONS" Missing: No mention of which agents should implement which tickets in the parallel execution plan. File: Recommendation: Add agent routing guidance: ## Agent Assignment Strategy
| Ticket Category | Recommended Agent |
|----------------|-------------------|
| Foundation (A*) | polymorphic-agent (architecture + implementation) |
| Runtime (B*) | polymorphic-agent (core infrastructure) |
| Orchestrator (C*) | polymorphic-agent (ONEX workflow coordination) |
| Testing (G*) | agent-testing (test generation and validation) |
| Migration (H*) | agent-ticket-manager (planning) → polymorphic-agent (execution) |
**Critical**: Never run agents with run_in_background: true per CLAUDE.md policy
**Parallelism**: Launch multiple foreground agents in one turn for true parallel executionMedium Priority7. File Naming Convention AmbiguityFile: Issue: Uses CLAUDE.md Patterns:
Recommendation: Add documentation naming convention to CLAUDE.md: ### Documentation Naming Conventions
| Type | File Pattern | Location |
|------|-------------|----------|
| Design Specs | `DESIGN_<TOPIC>.md` | `docs/design/` |
| As-Is Analysis | `<NN>_<TOPIC>.md` | `docs/as_is/` |
| Handoffs | `HANDOFF_<TOPIC>.md` | `docs/handoffs/` |
| Planning | `<TOPIC>_PLAN.md` | `docs/planning/` |8. Correlation ID Generation Pattern UnclearCLAUDE.md Section: "Correlation ID Assignment Rules" - use Missing in Design Doc: No explicit guidance on correlation_id generation at workflow entry points. File: Recommendation: Add to section 5.1 (Envelope Fields): class ModelEnvelope(BaseModel):
model_config = ConfigDict(frozen=True, extra="forbid")
message_id: UUID # Always generate new UUID4 per message
correlation_id: UUID # Propagate from request, or generate UUID4 if entry point
causation_id: UUID | None = None # message_id of immediate parent
emitted_at: datetime
entity_id: UUID
# Entry point pattern (no incoming correlation_id):
from uuid import uuid4
correlation_id = uuid4() # Generate at workflow entry
# Propagation pattern (has incoming correlation_id):
correlation_id = incoming_message.correlation_id # Propagate9. Testing Coverage Metrics Not DefinedTickets: G1-G5 lack quantitative coverage targets Recommendation: Add to each testing ticket: ### G1. Reducer Tests
Coverage Requirements:
- 100% branch coverage for reducer logic (deterministic paths)
- 100% FSM state transition coverage
- Property-based tests for event sequence permutations
- Minimum 20 event sequence scenarios10. Backwards Compatibility Policy MissingCLAUDE.md: "🚫 CRITICAL POLICY: NO BACKWARDS COMPATIBILITY" Missing: No explicit statement about breaking changes being acceptable in migration section (H1, H2). File: Recommendation: Add to H1: ### H1. Legacy Component Refactor Plan
Priority: P1
Description:
Refactor legacy components into canonical architecture.
+ Backwards Compatibility Policy:
+ - Breaking changes are ALWAYS acceptable per CLAUDE.md
+ - No deprecated code maintenance
+ - Remove old patterns immediately upon cutover
+ - No dual-write paths (violates single source of truth)
Acceptance:
- No big-bang rewrite required
- Explicit cutover points defined
- No dual-write paths allowedLow Priority (Nice to Have)11. Cross-Reference to Existing PatternsThe design documents could reference existing infrastructure patterns documented in
Recommendation: Add "Related Patterns" section to design doc: ## Related Infrastructure Patterns
This architecture builds upon:
- Container DI: `docs/patterns/container_dependency_injection.md`
- Error handling: `docs/patterns/error_handling_patterns.md`
- Circuit breakers: `docs/patterns/circuit_breaker_implementation.md`
- Correlation tracking: `docs/patterns/correlation_id_tracking.md`12. Registry Naming Convention Not AppliedCLAUDE.md Section: Registry Naming Conventions Missing: No mention of registry naming for runtime components. Recommendation: If runtime requires registries (B1a Message Type Registry), follow: 🎯 Test Plan VerificationPR description test plan:
Additional Testing Recommendations:
📊 Code Quality Assessment
Overall: 4.7/5.0 ⭐⭐⭐⭐⭐ 🚀 RecommendationAPPROVE with minor revisions This is excellent architectural work that establishes a solid foundation for ONEX workflows. The documentation quality is outstanding and the architectural patterns are sound. Required Changes (before merge):
Recommended Changes (can be follow-up): 🎖️ KudosSpecial recognition for:
This sets a high bar for ONEX documentation standards. 🎉 Review completed by: Claude Sonnet 4.5 (ONEX Architecture Review Agent) |
Created from PR #56 CodeRabbit review feedback identifying omnibase-core version dependency as prerequisite for Wave 1.
PR Review: Canonical ONEX Runtime & Registration Architecture PlanOverall Assessment: ✅ APPROVE with recommendations This PR represents exceptional architectural documentation work that establishes the canonical patterns for ONEX infrastructure development. The documentation is thorough, well-structured, and addresses critical architectural decisions that will guide all future workflow implementations. Strengths📚 Comprehensive Documentation StructureDesign Documents:
As-Is Analysis (
This as-is analysis follows best practices for architecture documentation and will prevent significant confusion during implementation. 🎯 Architectural ClarityStrong Principles (Section 0 of design doc):
These principles are exactly right for event-sourced, distributed systems and align perfectly with ONEX's contract-driven architecture. Handler-Runtime Separation:
📋 Ticket Planning ExcellenceDependency Management:
Acceptance Criteria:
🔒 ONEX ComplianceThe documentation strongly adheres to ONEX principles from CLAUDE.md:
Issues and Recommendations🔴 Critical: Version Dependency BlockerLocation: The handoff document correctly identifies that this refactor requires
Recommendation:
Status: The parallel execution plan correctly identifies this (line 232), but the main ticket plan should be more explicit. 🟡 Medium: Import Path ClarityLocation: The "Target Import Paths" section is excellent but could be clearer about:
Recommendation: > **Current State (0.4.x):** Legacy classes exist as NodeEffectLegacy, NodeReducerLegacy.
> **Do NOT build on legacy classes** - wait for 0.5.x release.
> **Planning Work:** Design contracts and models; defer implementation until 0.5.x.🟡 Medium: Projector Invocation Sequence ClarityLocation: The explanation of projector invocation is excellent - it clarifies that "publish" means different things for different output types (projections = persist to storage, intents/events = publish to Kafka). However, this critical distinction could be even more prominent. Current (good): Recommendation: ### Critical Distinction: Projection "Publishing" vs Event Publishing
Projections are NOT published to Kafka. They are persisted synchronously to storage
(PostgreSQL, Redis, etc.) BEFORE intents and events are published to Kafka topics.
This ensures read models are consistent before downstream consumers receive events.🟢 Minor: Constraint 6 ClarificationLocation: The clarification added in commit 2559c5b is excellent - it explains that "No versioned directories" applies to new components while legacy Recommendation: - See ticket H1 (Legacy Component Refactor Plan, OMN-956) for migration timeline
- Target: Complete migration by end of Phase 2 (after Wave 4)🟢 Minor: Testing Ticket Cross-ReferencesLocation: The cross-references to testing tickets (G1-G5) added in commit 2559c5b are perfect. This is exactly the right level of detail for a design document. Additional Recommendation: Testing follows a standard pyramid:
- Unit tests (G1, G2): Fast, isolated, no I/O
- Integration tests (G3, G4): Components wired together, mocked infrastructure
- E2E tests (G3-real, OMN-892): Real infrastructure, full stack
- Chaos tests (G5): Failure injection, restart scenariosCode Quality Analysis✅ Documentation-Only PRThis PR is pure documentation (2,636 additions, 0 deletions) with no code changes. All files are Markdown:
No security concerns - this is documentation only. ✅ File OrganizationThe documentation follows excellent organizational principles:
Security Considerations✅ No Security Issues This PR contains only documentation. However, the design principles themselves include strong security-relevant patterns:
The architecture itself is security-conscious. Performance Considerations✅ Performance-Aware DesignPositive Patterns:
Potential Concern:
Recommendation: Test CoverageExcellent Test Planning Section G tickets cover the full testing pyramid:
Missing Test Coverage:
Recommendation: Best Practices Adherence✅ ONEX ComplianceFrom CLAUDE.md:
Agent-Driven Development:
This aligns with CLAUDE.md mandatory rules. ✅ Naming ConventionsFrom CLAUDE.md Section "File & Class Naming Conventions": The design documents propose:
One concern: Handoff doc shows Resolution: Handoff doc is describing current/legacy pattern. The new implementation (per constraint 6) should use: This should be clarified in H1 (Legacy Refactor Plan). Recommendations SummaryBefore Merge:
During Implementation:
Post-Implementation:
ConclusionThis PR represents outstanding architectural work that:
The documentation quality is production-ready and sets a high standard for future architecture work. Final Recommendation: APPROVE and MERGE after addressing the blocker warning (recommendation #1). Estimated Implementation Timeline: 7 waves, ~9-11 weeks with 9 parallel workers (per PARALLEL_EXECUTION_PLAN.md). Files Reviewed
Total Documentation Added: 2,636 lines across 13 files Reviewed by: Claude Sonnet 4.5 (ONEX Infrastructure Code Review) |
…st requirements - Add OMN-959 blocker reference to ticket plan header - Add terminology mapping (Node/Handler/Runtime) to global constraints - Add Pattern Validator specific test case names to A2 - Add canonical envelope principle and plane usage to A2a - Add F0 sequence diagram showing Orchestrator->Reducer->Effect flow - Clarify B2/F0 relationship for projection persistence - Update handoff and design docs with additional context
Pull Request Review: Canonical ONEX Runtime & Registration Architecture PlanThis PR adds comprehensive documentation for the ONEX Runtime and Two-Way Registration architecture refactor. The documentation is exceptionally thorough and represents high-quality architectural thinking. Strengths
Critical Findings (P0-P1)
RecommendationsBefore Merge:
Post-Merge:
Final AssessmentAPPROVE with minor improvements This represents exceptional architectural work with comprehensive documentation and deep understanding of event-driven systems. Reviewed by: Claude Code (Sonnet 4.5) |
CRITICAL fixes: - Add BLOCKER notice for omnibase_core 0.5.x dependency requirement - Update all NEW component structures to use flat directories (no v1_0_0) - Add projection vs event publishing distinction (persist to storage vs publish to Kafka) - Mark existing v1_0_0 directories as LEGACY with H1 migration reference MAJOR fixes: - Add Phase 1 dependency verification as [GATE] Task 1 - Add pre-implementation meeting requirements with decision checklist - Add RACI matrix placeholder format for names/dates assignment - Add explicit escalation timeline for contingency plan (Day 0 → Day 7+) - Verify A2a envelope canonicality and handler terminology in Global Constraint #7 - Add error sanitization acceptance criteria to E1 with CLAUDE.md references MINOR fixes: - Add F0 ↔ B2 interaction sequence diagram (projector before intent publish) - Add end-to-end orchestrator → reducer → effect flow diagram - Add F0 failure handling documentation (projector fails → no intent → DLQ) - Add B6 RuntimeTick configuration details (env var, min/max values) - Add pattern validator test requirements with known-bad test case names - Add circuit breaker and correlation ID acceptance criteria to E1 - Add comprehensive domain derivation examples (valid/invalid) to B1a - Add H1 v1_0_0 cutover strategy with deprecation milestones - Add G5a property-based testing sub-ticket - Add target import paths section labeled as post-0.5.x NITPICK fixes: - Add orchestrator state-reading invariant (projections only) - Add timeout handling details (RuntimeTick cadence, emitted_at markers) - Add concrete test examples for G1-G4 - Add "Requires 0.5.x" to all base class dependencies - Add timeline risk factor for decision resolution delay - Add PEP 604 type annotation convention note - Add B3 and E1 idempotency key strategies CLAUDE.md updates: - Add "NO VERSIONED DIRECTORIES" critical policy section - Update node structure pattern to show canonical (flat) vs legacy (v1_0_0) - Update registry naming conventions to reference flat structure
PR Review: Canonical ONEX Runtime & Registration Architecture PlanExecutive Summary✅ APPROVE WITH MINOR RECOMMENDATIONS This PR adds comprehensive, high-quality architectural documentation for the ONEX Runtime and Two-Way Registration refactor. The documentation is well-structured, thorough, and demonstrates excellent alignment with ONEX principles. All critical issues from previous reviews have been addressed. Strengths1. Comprehensive Architecture Documentation ✅
2. Excellent Adherence to ONEX Principles ✅
3. CLAUDE.md Updates Are Correct ✅
4. Dependency Management ✅
5. Execution Planning ✅
Code Quality AssessmentDocumentation Quality: EXCELLENTDesign Documents:
As-Is Analysis:
Handoff Documentation:
Architectural Consistency: EXCELLENTAll documentation follows ONEX 4-node architecture:
Contract-Driven Design: EXCELLENT
Security Considerations1. Error Sanitization ✅
2. Idempotency ✅
3. Circuit Breaker Integration ✅
Performance Considerations1. Parallel Execution Strategy ✅
2. Runtime Efficiency ✅
3. Testing Coverage ✅
Test Coverage AssessmentTesting Strategy: COMPREHENSIVETest Tickets:
Pattern Validator Tests:
Test Coverage Requirements:
Potential Issues & RecommendationsMinor Issues (Non-Blocking)1. Ticket Dependency Visualization (Nitpick)Issue: The parallel execution plan uses text-based Gantt chart which may be hard to maintain. Recommendation: Consider adding a Mermaid diagram for ticket dependencies: ```mermaid
graph LR
A1[OMN-931] --> A2[OMN-933]
A2 --> B1[OMN-934]
B1 --> B1a[OMN-937]
...
\```Impact: Low - current format is acceptable, this would just improve readability. 2. Migration Coordination (Minor)Issue: H1 legacy refactor plan needs coordination with omnibase_core 0.5.x release. Recommendation: Add explicit dependency in H1 ticket:
Impact: Low - already implicitly handled by wave ordering, explicit dependency would clarify. 3. Decision Process Timeline (Minor)Issue: RACI matrix in handoff shows "TBD" for names and target dates. Recommendation:
Impact: Low - contingency plan exists, but proactive assignment would prevent delays. Recommendations for Future Work1. Contract Generation ToolingAll new contracts should use Recommendation: Add ticket for contract generation tooling validation:
2. Performance BenchmarkingRecommendation: Consider adding performance benchmarking ticket:
3. Documentation RenderingRecommendation: Verify documentation renders correctly in:
Final Verdict✅ APPROVEDThis PR represents exceptional architectural work that:
Merge Recommendation: MERGE IMMEDIATELYNo blocking issues. All minor recommendations can be addressed in follow-up tickets during Wave 1-2 implementation. Test Plan Verification
Additional NotesExcellent work on addressing all review feedback from previous iterations:
This PR sets the standard for architectural documentation in ONEX. 🤖 Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com |
…n, and future work Ticket Dependency Visualization: - Add Mermaid diagram with 8 subgraphs (A-H sections) - OMN-959 blocker highlighted with red styling - Cross-section dependencies visualized - Original text reference preserved Migration Coordination: - Add explicit H1 → OMN-959 dependency (BLOCKING) - Add H1a Migration Validation Gate ticket - Update dependency chain: OMN-959 → H1 → H1a → H2 Decision Process Timeline: - Add escalation path with day thresholds (1-2, 3-4, 5+ days) - Add default decisions as fallback for escalation - Add Wave 2 impact guidance for blocked decisions - Reference escalation path from timeline section Future Work Recommendations: - Add contract generation tooling validation tasks - Add performance benchmarking recommendations - Add documentation verification notes - Add additional testing patterns (chaos, load, fault injection)
PR Review: Canonical ONEX Runtime & Registration Architecture PlanSummaryThis PR adds comprehensive documentation establishing the canonical workflow architecture for ONEX. The documentation quality is exceptional and represents a significant milestone in architectural clarity. However, there are several areas requiring attention before merge. Overall AssessmentStrengths:
Areas for Improvement:
Critical Issues1. CLAUDE.md Versioning Policy (CRITICAL)The new NO VERSIONED DIRECTORIES policy conflicts with existing codebase patterns. The codebase has extensive v1_0_0/ directories. Migration plan H1 (OMN-956) is referenced but not P0. Recommendation: Add explicit migration timeline, clarify coexistence strategy, document how breaking changes will be handled during transition. 2. Missing OMN-959 BlockerOMN-959 (omnibase_core >= 0.5.0) is mentioned as BLOCKER but not in the ticket list. This is a critical path dependency. Recommendation: Add Section I: Infrastructure Dependencies, list OMN-959 as P0, update wave execution plan. 3. Architecture Diagram InconsistencyHANDOFF doc diagram shows Invokes relationship between Orchestrator and Reducer, but the invariant states they should be decoupled via event bus. Recommendation: Revise diagram to show event-driven flow, not direct invocation. 4. PR Relationship UnclearLine 6 mentions PR #52 (open - contains wrong architecture) but we're reviewing PR #56. Recommendation: Clarify relationship and add closure plan for #52 if superseded. Required Changes Before MergeCritical (Must Fix):
Important (Should Fix): Final RecommendationAPPROVE WITH CHANGES REQUESTED This PR represents exceptional architectural work and establishes critical patterns for ONEX development. The documentation quality is significantly above standard. However, the critical issues around CLAUDE.md policy changes and missing dependency tracking must be addressed before merge to avoid confusion and technical debt. Once required changes are addressed, this will be a major milestone for the ONEX project. Great work on this comprehensive architectural documentation! Review by Claude Code | 2025-12-19 |
- Add ADR placeholder references for blocking decisions (Command Source, Intent Topics, Reducer Invocation) - Add parallel execution plan with 6 waves including Wave 6 for H1 migration - Enhance E1 acceptance criteria with circuit breaker, error sanitization, and correlation ID requirements - Add cross-domain subscription configuration to B1a - Add concrete test examples for G1, G2, G3, G4 test tickets - Add Documentation Deliverables section with ADR, runbook, and migration guide references - Add stakeholder communication section for PR #52 disposition - Add feature flags and rollback strategy to H1 migration ticket - Add timeline assumptions and visualization notes sections - Enhance Target Import Paths with legacy class migration path - Add registry naming conventions appendix
Comprehensive Code Review: PR #56 - ONEX Runtime & Registration Architecture DocumentationSummary of ChangesPR #56 adds comprehensive canonical architecture documentation for the ONEX Runtime and Two-Way Registration refactor:
Strengths of the PR ✅
Issues Found 🔍CRITICAL Issues ⛔C1: File Path Reference Inaccuracy in Handoff Document
C2: Missing Reducer File Reference
MAJOR Issues
|
CRITICAL: - Add prominent BLOCKER notice with structured table format - Clarify projection persistence vs event publishing distinction - Add single envelope principle per architectural plane (A2a) - Add F0 terminology clarification section MAJOR: - Mark Section 9.1 open questions as CRITICAL blockers - Add Phase 1 Task 0 GATE for dependency verification - Complete RACI matrix with Tech Lead placeholders - Add pre-implementation meeting scheduling requirements - Add error sanitization references to E1 acceptance criteria - Enhance H1 blocking dependency on OMN-959 - Add performance benchmarking targets - Align ADR cross-references between documents MINOR: - Fix file path references to absolute paths - Add stakeholder communication plan for PR #52 rejection - Enhance escalation timeline with templates - Add domain derivation rule examples (B1a) - Add RuntimeTick configuration documentation (B6) - Add circuit breaker and correlation ID requirements NITPICK: - Add ProtocolProjectionReader clarification - Add base class version requirements table - Add ticket dependency visualization notes - Add versioning policy for design documents Cross-document consistency: - Align version references between HANDOFF and TICKET_PLAN - Add terminology alignment notes (Global Constraint #7) - Update DESIGN doc with cross-references
PR Review: ONEX Runtime & Registration Architecture DocumentationOverall Assessment: APPROVE WITH RECOMMENDATIONS ✅This is an excellent architectural planning PR that establishes the canonical patterns for ONEX runtime and registration workflows. The documentation is thorough, well-structured, and demonstrates deep understanding of event-driven architecture principles. Strengths1. Comprehensive As-Is Analysis 📊The
This level of "map the territory before changing it" analysis is a model for architectural refactoring work. 2. Strong Architectural Principles 🏗️The design document (v2.1.2) defines clear, testable principles:
These align with industry best practices for event sourcing and CQRS patterns. 3. Excellent Implementation Planning 📋The ticket plan demonstrates sophisticated project management:
4. CLAUDE.md Updates Are Precise 📝The changes to
Code Quality ObservationsDocumentation Quality: Excellent ⭐⭐⭐⭐⭐
Architecture Soundness: Strong 🎯Strengths:
Minor Concerns:
Security Considerations✅ No Security Issues DetectedThis PR is purely documentation. Key security-relevant design decisions:
Performance Considerations✅ Performance-Aware DesignGood patterns:
Recommendation:
This could be added to Section G (Testing) as a P1 ticket. Test Coverage RecommendationsCurrent Test Coverage: Strong Plan, Needs VerificationWell-defined test categories:
Recommendation:
This aligns with ticket B1a acceptance criteria but could use a dedicated test ticket. Specific Feedback by File
|
| Scenario | Use Core EnvelopeRouter | Use Infra3 RuntimeHostProcess |
|---|---|---|
| ONEX node message routing | ✅ | ❌ |
| Low-level I/O handler dispatch | ❌ | ✅ |
| Transport-agnostic execution | ✅ | ❌ |
08_DECISION_POINTS_AND_UNANSWERED_QUESTIONS.md:
- Central list of unresolved decisions ✅
Recommendation: Track resolution status of each decision point. Consider adding:
| Decision | Status | Ticket | Resolution Date |
|----------|--------|--------|-----------------|
| Registration trigger (event vs command) | ✅ Resolved | A3 (OMN-943) | 2025-12-18 |
| Timeout implementation | ✅ Resolved | C2 (OMN-932) | 2025-12-19 |docs/planning/PARALLEL_EXECUTION_PLAN.md (233 lines)
✅ Strong execution strategy
Wave structure:
- Wave 1: 4 parallel tasks (foundation) ✅
- Wave 2: 9 parallel tasks (runtime + foundation complete) ✅
- Clear dependency gates ✅
Recommendation: Add a Critical Path Analysis section identifying the longest dependency chain (e.g., A1 → B1 → B2 → F0 → C1). This helps identify schedule risks.
Suggestion: Document resource allocation assumptions:
- "5 omnibase_core repos" assumes 5 concurrent PR reviews/merges
- What is the merge queue capacity?
- Are there code freeze periods that would block waves?
Potential Bugs or Issues
🟡 Minor Issues Detected
-
CLAUDE.md Line 847: Phrasing inconsistency
- Current: "Semantic versioning (contract_version, node_version)"
- Suggested: "Semantic versioning in contract (contract_version, node_version fields)"
- Reason: Clarify these are YAML fields, not directory names
-
Ticket Plan Section A2: Missing constraint on reducer time access
- Acceptance criteria validate no I/O, no event returns
- Missing: "Reducer must not call datetime.now() or time.time()"
- Recommendation: Add to "known bad" test cases:
test_reducer_accessing_system_time_rejected
-
Handoff Doc Section 3.1: Terminology mixing
- Line 164: "Handler calls via NodeRuntime"
- Per Global Constraint feat: Complete Hook Node Protocol Integration and Production Readiness #7: Should be "Handlers invoked via NodeRuntime"
- Reason: "Calls" implies handler initiates; "invoked" clarifies runtime initiates
✅ No Blocking Issues
All issues above are minor clarity/consistency improvements.
Recommendations Summary
High Priority
- Verify omnibase_core 0.5.0 release timeline - Blocker for implementation
- Add performance testing ticket to Section G (P1)
- Document crash-recovery scenario for projection persistence vs event publishing
Medium Priority
- Add Error Handling to Global Constraints (Constraint feat: migrate 96 models to domain-organized structure #8)
- Create ADR for NodeRegistryEffect refactor rationale (preserve institutional knowledge)
- Add Critical Path Analysis to parallel execution plan
Low Priority (Polish)
- Add sequence diagram for F0 ↔ B2 interaction
- Add "When to use which runtime" decision matrix to as_is/05
- Add decision resolution tracking table to as_is/08
- Fix minor terminology inconsistencies (3 locations noted above)
Final Verdict
This PR establishes the architectural foundation for ONEX runtime correctness. The depth of analysis, clarity of design principles, and thoroughness of planning are exemplary.
Approve and merge once:
- ✅ Test plan checkbox confirmed (docs render, Linear links valid, version correct)
- ✅ omnibase_core 0.5.0 blocker timeline is documented (add to PR description if not yet released)
- ✅ Minor terminology fixes applied (optional but recommended)
Post-merge actions:
- Create performance testing ticket (G6) per recommendation Add Claude Code GitHub Workflow #2
- Schedule decision checkpoint for Wave 1 start (verify A1-A3 decisions aligned)
- Set up ticket plan document watch (notify stakeholders of version bumps)
Acknowledgment
This level of architectural rigor—especially the as-is analysis and explicit constraint documentation—sets a high bar for future ONEX refactors. Well done. 🎯
Reviewed by: Claude Code (ONEX Infrastructure Review Agent)
Review Date: 2025-12-19
Review Guidelines: CLAUDE.md ONEX Architecture Patterns
HANDOFF Document: - Add RACI matrix template header clarifying placeholder values - Add decision timeline guidance (T-10 to T-0 days) - Add testing acceptance criteria formatting to Section 8 - Verify version references are consistent (Design 2.1.2) Ticket Plan Document (version 1.0.0 -> 1.1.0): - Add A2a envelope clarification (ONE ModelEnvelope for ALL planes) - Add H1 explicit BLOCKER notice for OMN-959 - Add E1 circuit breaker thread safety test requirements - Update test directory structure (tests/unit/, tests/integration/) - Expand H1a migration validation gate (pre/during/post phases) - Add A2a contract validation cross-reference to test sections - Add mermaid diagram OMN-959 red styling explanation All critical, major, minor, and nitpick issues addressed.
PR #56 Comprehensive Review: ONEX Runtime & Registration Architecture DocumentationExecutive SummaryPR #56 introduces comprehensive documentation for the ONEX Runtime and Two-Way Registration architecture refactor, establishing canonical patterns for all future ONEX workflows. This is a docs-only PR with 4,249 additions across 14 files. Recommendation: APPROVE with REQUIRED CHANGES - The documentation quality is exceptionally high, but several critical gaps must be addressed before merge. 1. Strengths of the PR ⭐1.1 Exceptional Documentation QualityArchitecture Design Document: Clear separation of concerns across 4 architectural planes (Ingestion, Decision, State, Execution) with concrete handler contracts and type-safe protocols. Ticket Plan: 31 well-structured tickets across 8 sections with clear dependency chains, mermaid diagrams, and explicit acceptance criteria. Handoff Document: Brutally honest assessment of current state (3,065 line monolith), clear migration path with Phase 0-4 execution plan, and contingency planning. 1.2 Strong ONEX AlignmentGlobal Constraints:
NO VERSIONED DIRECTORIES Policy: Clear policy in CLAUDE.md with migration plan for legacy 1.3 Comprehensive As-Is Analysis8 detailed "as_is" documents provide vocabulary disambiguation and document what's unclear before prescribing solutions - shows intellectual honesty. 2. REQUIRED Changes Before Merge 🚨2.1 CRITICAL: Fix Envelope Terminology ConfusionIssue: Section A2a heading "Single envelope per architectural plane" reads as "one envelope type per plane" but the clarification says "same envelope everywhere." Fix Required: Change heading to: Canonical envelope across all architectural planes:This removes ambiguity without needing multi-line clarification. Location: 2.2 CRITICAL: Global Terminology Pass for "Publish" vs "Persist"Issue: Documents use "publish" to mean both:
Example Contradiction:
Fix Required:
Specific Fix for Line 722: - Runtime processes in order:
1. Persist projections (to storage - synchronous)
2. Publish intents (to Kafka)
3. Publish events (to Kafka)2.3 CRITICAL: Add F0a Ticket for Projector Interface ContractIssue: F0 describes WHAT happens (projections persisted before Kafka publish) but not HOW:
Fix Required: Add new ticket F0a: Projector Interface Contract (P0, depends on F0): F0a. Projector Interface Contract
Priority: P0
Dependencies: F0
Description:
Define ProtocolProjectionWriter interface and discovery mechanism.
Questions to Answer:
1. Does Runtime directly invoke Projector.persist()?
2. Does Reducer output include ProjectorHint?
3. What happens if persist() fails after N retries?
Acceptance:
- ProtocolProjectionWriter interface defined
- Container resolution mechanism documented
- Failure handling spec (DLQ format)
- Cross-reference with E3 DLQ handling2.4 BLOCKING: Promote E3 to P0 and Add DLQ Spec for ProjectionsIssue: F0 failure handling states "send to DLQ" but E3 (DLQ Handling) is only P1, creating a dependency gap. Fix Required:
2.5 BLOCKING: Add ADR Template and READMEIssue: Handoff document references Fix Required: Add to this PR: Or reference external ADR standard (e.g., Michael Nygard's format). 3. Recommended Changes (Should Address) 💡3.1 Handler vs Node Terminology Leaks (HIGH)Issue: Despite Global Constraint #7 defining terminology, several places still conflate "handler" and "node":
Recommendation: Global search-replace pass to enforce:
3.2 Clarify Execution Shape Validator Implementation (HIGH)Issue: A2 requires "Execution Shape Validator" but doesn't specify if it's:
Recommendation: Add implementation approach options to A2 acceptance criteria. 3.3 Revise Wave 4 Parallel Execution Sequencing (MEDIUM)Issue: Wave 4 shows F0, F1 running parallel with C0, C1, but C0 (Projection Reader) needs F1 (schema) to be complete. Recommendation: Wave 4a (Days 10-12): F0, F1, D1-D3
Wave 4b (Days 13-15, after 4a): C0, C1, C23.4 Add Envelope Migration Path (MEDIUM)Issue: A2a mentions "migration path for dict-based envelopes" but doesn't define it. Recommendation: Add migration phases:
3.5 Specify RuntimeTick Partition Strategy (MEDIUM)Issue: B6 emits RuntimeTick but doesn't specify partitioning strategy. Recommendation: Choose and document:
3.6 Define Performance Regression Thresholds (MEDIUM)Issue: H1 requires baseline metrics but doesn't define regression tolerance. Recommendation: Add to H1: Performance Regression Tolerance:
- p99 latency: max +10%
- Throughput: max -5%
- If exceeded: investigate, document trade-off, create optimization ticket4. Security Considerations 🔒Strengths
Gaps (Future Work)
5. ONEX Pattern Alignment ✅Strong Alignment
Potential EnhancementAdd to A2 acceptance criteria: validate that orchestrators/reducers/effects use protocols (not concrete classes) for dependencies. 6. Final VerdictMerge Status: APPROVE with REQUIRED CHANGESMust Fix Before Merge (2.1-2.5):
Should Address (3.1-3.6):
Overall AssessmentThis PR represents exceptional architectural rigor and establishes a strong foundation for ONEX registration workflows. The documentation quality is significantly above typical architecture planning. Impact: This will significantly improve quality and maintainability of ONEX workflows. Confidence: HIGH - Reviewed all 14 files in detail and cross-referenced against ONEX patterns. Review by: Claude (ONEX Code Review Agent) |
CRITICAL fixes: - Fix version cross-references (1.0.0 → 1.1.0 in design doc) - Verify blocker warnings prominent - Clarify projection persistence vs event publishing MAJOR fixes: - Enhance RACI matrix with template population guidance - Add decision owners assignment requirement - Add target dates to blocking questions - Enhance escalation path with Wave 2 impact mitigation - Mark Phase 1 Task 0 as CRITICAL DEPENDENCY GATE - Enhance pre-implementation meeting requirements MINOR fixes: - Change absolute paths to relative paths for portability - Add ADR requirements with section references - Add operator runbook reference - Add developer migration guide reference - Expand domain derivation examples (24 valid, 8 invalid) - Document RuntimeTick configuration NITPICK fixes: - Clarify orchestrator state-reading path (5-step process) - Add timeout handling references - Enhance testing tables with inline acceptance criteria - Add base class version dependency table - Clarify versioning policy (MAJOR/MINOR/PATCH) - Add test structure examples with pytest code - Update timeline assumptions with escalation reference - Add ticket dependency visualization guidance
PR Review: Canonical ONEX Runtime & Registration Architecture DocumentationExecutive SummaryRecommendation: APPROVE with minor observations This PR adds comprehensive architectural documentation that establishes canonical patterns for ONEX workflows. The documentation quality is exceptional, with clear separation between design, planning, current state analysis, and handoff materials. Strengths1. Documentation Structure & Organization ⭐️⭐️⭐️⭐️⭐️The documentation hierarchy is well-organized:
This separation makes it easy to understand:
2. Architectural Rigor ⭐️⭐️⭐️⭐️⭐️The design document establishes strong architectural principles:
These constraints align perfectly with ONEX principles in 3. Ticket Planning Excellence ⭐️⭐️⭐️⭐️⭐️The 31-ticket breakdown is comprehensive:
The parallelization plan ( 4. "As-Is" Analysis Depth ⭐️⭐️⭐️⭐️⭐️The as-is documentation is exceptional:
This prevents "accidental baking of assumptions" into the design. 5. CLAUDE.md Integration ⭐️⭐️⭐️⭐️⭐️The updates to
Observations & Recommendations1. Version Numbering Clarity (Minor)The design doc header shows: Version: 2.1.2
Status: Design (Canonical, Public)
Created: 2025-12-18
Updated: 2025-12-19The ticket plan shows: Document Version: 1.1.0Observation: Different versioning schemes for related docs. This is fine, but consider documenting the versioning policy for each doc type (design vs plan). Recommendation: The ticket plan includes a versioning policy section - consider adding similar guidance to the design doc header. 2. Blocker Visibility (Minor)The handoff doc has a prominent blocker:
Observation: This blocker is documented in the handoff but not prominently in the design doc. Recommendation: Consider adding a blocker notice to the top of Note: I see this is addressed in 3. Decision Points Document (Strength + Observation)The Observation: Some questions (like B1: "Which wrapper is canonical?") are answered by the design doc (A2a: "ONE ModelEnvelope applies to ALL message categories"). Recommendation: Consider cross-referencing which decision points are resolved by the design vs which remain open. This could be done in a future PR after stakeholder review. 4. Test Coverage Requirements (Strength)The ticket plan includes comprehensive testing (G1-G5):
Observation: Testing is properly treated as a critical phase, not an afterthought. Recommendation: None - this is exemplary. 5. Migration Strategy (Strength)The H-section tickets (H1: OMN-956, H2: OMN-957) provide a clear migration path from legacy patterns. Observation: The "NO VERSIONED DIRECTORIES" policy is clearly stated as applying to NEW components, with legacy components explicitly marked for migration. Recommendation: None - this strikes the right balance between new standards and pragmatic migration. Code Quality & Best PracticesAdherence to ONEX Principles ✅All documentation follows ONEX guidelines:
Documentation Standards ✅
Naming Conventions ✅File naming follows ONEX patterns:
Potential IssuesNone identified ✅This is a documentation-only PR with:
Test CoverageDocumentation Renders Correctly ✅As noted in the PR description test plan:
Observation: I verified several Linear links (OMN-931, OMN-888, OMN-889, etc.) and they appear properly formatted. Recommendation: Test rendering by viewing the files in GitHub's markdown preview before merge. Security ConsiderationsNo security concerns for this documentation-only PR. The design doc includes proper guidance on:
Performance ConsiderationsNo performance concerns for this documentation-only PR. The design doc includes proper guidance on:
Final RecommendationAPPROVE ✅ This PR establishes the canonical architectural foundation for ONEX workflows. The documentation is comprehensive, well-organized, and aligns perfectly with ONEX principles. Next Steps
AcknowledgmentsThis documentation set represents exceptional planning work. The separation between "what exists", "what we want", and "how to get there" is exactly what a complex refactor needs. Reviewed by: Claude Sonnet 4.5 (ONEX Infrastructure Specialist) |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (1)
1279-1410: Dependency graph (Mermaid) with blocker styling is well-visualized—ensure rendering and update with actual ticket IDs.The Mermaid dependency graph (lines 1281–1386) clearly shows the critical path and parallel execution opportunities. The red styling for OMN-959 (omnibase_core 0.5.x adoption) is excellent for visual distinction of the blocking dependency. The text reference (lines 1388–1404) provides a fallback representation.
Recommendation: Once Linear tickets are created from this plan, update the Mermaid diagram node labels to include actual ticket IDs (e.g.,
A1["A1: Canonical Layering - OMN-931"]instead of justA1["A1: Canonical Layering"]). This will create a direct map between the diagram and Linear tickets for team visibility.After Linear ticket creation, update Mermaid diagram nodes to include actual ticket IDs for traceability (e.g.,
A1 becomes "A1: Canonical Layering (OMN-931)"). This enables one-click navigation from diagram to ticket in Linear.docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (3)
448-490: Phase 1 gate tasks correctly require dependency verification AND test validation—strong exit criteria.Task 0 [GATE - DEPENDENCY] verifies availability; Task 1 [GATE - VALIDATION] verifies compatibility. Both gates have explicit exit criteria. If either fails, Phase 1 is blocked with clear reference to contingency. The note at lines 488–489 clarifying that task numbering starts at 0 to emphasize dependency verification is good.
However, Task 2–6 descriptions (lines 478–486) lack specific acceptance criteria and deliverables. Lines like "Create
nodes/node_registration_orchestrator/directory structure (FLAT, no v1_0_0)" need specifics:
- What files must be in the directory? (referenced in Section 5.1 directory structure, but Task 2 should reference it)
- What is the acceptance criterion? (e.g., "directory structure matches Section 5.1 specification")
- Who verifies completion?
These details exist in Section 5.1, but Phase 1 task descriptions should cross-reference or summarize acceptance criteria.
For each Phase 1 task (2–6), add a one-line acceptance criterion referencing relevant section (e.g., "Task 2: Create directory structure per Section 5.1 specification") and/or a reference to the Files to Create section. This makes Phase 1 execution more straightforward.
711-745: RACI matrix template structure is excellent—clear guidance for Tech Lead population and mandatory assignments.The template format (lines 711–722) with explicit
[Tech Lead: Assign ...]placeholders and a completion checklist (lines 730–736) is exemplary. The template explanation emphasizes that these placeholders MUST be replaced before execution. The note at lines 738–739 also clarifies that placeholder values indicate incomplete assignments.One enhancement: add a pre-population guidance section with examples or a checklist of "who qualifies as Responsible for a decision like Command Source?"—e.g.:
- Responsible = person who drafts options and gathers input
- Accountable = person who makes final decision
- Consulted = stakeholders whose input is needed
- Informed = stakeholders who need to know the outcome
This would help the Tech Lead complete the RACI matrix with appropriate role assignments without asking clarifying questions.
Add a brief "RACI Role Definition Guide" before the matrix template (around line 723) with examples of who is typically Responsible, Accountable, Consulted, and Informed for architectural decisions like "Command Source." This speeds up Tech Lead's RACI population.
1048-1070: Related Documents section provides good traceability—but missing cross-reference to CLAUDE.md policy on new features.Lines 1048–1070 correctly reference the canonical design docs, architecture references, and contracts. However, per the retrieved learning "Document new features and breaking changes in CLAUDE.md and relevant docs/ guides," this refactor should also reference or explicitly update CLAUDE.md with:
- New patterns for registration workflows (intent-based communication, orchestrator/reducer/effect separation)
- Circuit breaker requirements (mentioned in Section 8 Testing Requirements, but not in CLAUDE.md cross-reference)
- Error sanitization guidelines (mentioned in Section 6 Phase 2, but not in CLAUDE.md cross-reference)
The document references CLAUDE.md in several places (e.g., line 501 "see CLAUDE.md 'Error Sanitization Guidelines'"), but there's no consolidated note at the start or in Section 12 (Documentation Deliverables) to update CLAUDE.md with new canonical patterns.
Add to Section 12 (Documentation Deliverables) a note: "Update CLAUDE.md with new canonical patterns for registration workflows, including intent-based orchestrator/reducer/effect separation, circuit breaker requirements (see E1), and error sanitization guidelines (see Phase 2)."
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Lite
📒 Files selected for processing (3)
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md(1 hunks)docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md(1 hunks)docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md(1 hunks)
🧰 Additional context used
🧠 Learnings (27)
📓 Common learnings
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), not hash comments. Stamping must be idempotent and policy-driven.
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : All PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR description files must be stamped with an ONEX metadata block at the top using HTML comments format (`<!-- === OmniNode:Metadata === ... <!-- === /OmniNode:Metadata === -->`), and stamping must be idempotent and policy-driven. Do NOT use manual metadata blocks with hash comments.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T17:24:10.209Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : PR descriptions must use the canonical template at `src/omnibase/templates/dev_logs/template_pr_description.md`
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T18:46:12.150Z
Learning: Document new features and breaking changes in CLAUDE.md and relevant docs/ guides
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: All ONEX nodes must conform to the 4-Node Architecture pattern with clear separation of concerns and unidirectional data flow (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-18T17:14:26.130Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_infra PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-18T17:14:26.130Z
Learning: Implement ONEX 4-node architecture pattern for infrastructure tools: EFFECT (external service interactions), COMPUTE (message processing/transformation), REDUCER (state consolidation/decision making), ORCHESTRATOR (workflow coordination)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX nodes must conform to the canonical structure, code generation, and interface patterns established in the `node_cli` node, using it as the primary source of truth for directory structure, contract schema patterns, linked document architecture, base state patterns, shared schema references, extensibility patterns, CLI interface declarations, code generation, dependency injection, error handling, testing, and documentation
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-07T17:50:13.678Z
Learnt from: CR
Repo: OmniNode-ai/omniintelligence PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-07T17:50:13.678Z
Learning: Decompose intelligence operations into specialized ONEX nodes following a four-node pattern: Orchestrator (coordinate workflows), Reducer (manage state, FSM transitions), Compute (pure data processing), and Effect (external I/O)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md
📚 Learning: 2025-12-03T16:55:49.755Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-03T16:55:49.755Z
Learning: Applies to agents/**/*.py : Implement ONEX-compliant agent architecture with four node types: Effect (External I/O), Compute (Pure transforms), Reducer (State/persistence), and Orchestrator (Workflow coordination)
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contracts/contract_*.yaml : All ONEX node contract definitions must use the new subcontract architecture pattern, breaking down complex contracts into separate contract_actions.yaml, contract_models.yaml, contract_validation.yaml, and optional contract_cli.yaml and contract_capabilities.yaml files for separation of concerns, maintainability, reusability, modularity, and future tool-as-a-service readiness
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/contract.yaml : All ONEX node contract definitions must follow the linked document architecture pattern with contract.yaml linking to node_config.yaml and deployment_config.yaml as associated documents
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: All ONEX node deviations from canonical patterns must be documented and justified in the node's root-level README.md and subject to maintainer review
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/ARCHITECTURE_DECISIONS.md : All ONEX nodes must include an `ARCHITECTURE_DECISIONS.md` file at the node root directory level documenting key architectural choices with rationale, decision status, context, options, and consequences
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/SCHEMA_DECISIONS.md : Each versioned ONEX node implementation directory must include a `SCHEMA_DECISIONS.md` file documenting schema-specific design decisions, implementation notes, and validation strategies
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-12-19T18:46:12.150Z
Learnt from: CR
Repo: OmniNode-ai/omnibase_core PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-19T18:46:12.150Z
Learning: Use four-node architecture pattern: EFFECT → COMPUTE → REDUCER → ORCHESTRATOR with unidirectional data flow
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Deviations from omnibase_core standards are only acceptable for: (1) Orchestrator/Reducer nodes (ModelService* disabled), (2) Experimental features being prototyped for upstream, (3) Performance-critical optimizations with benchmark proof, (4) Bridge-specific unique patterns. All deviations require explicit documentation and justification.
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.mddocs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:55.606Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T16:32:55.606Z
Learning: No backwards dependencies are allowed; data flow must be strictly unidirectional (EFFECT → COMPUTE → REDUCER → ORCHESTRATOR) with no node depending on nodes that come after it in the flow
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Applies to src/omninode_bridge/events/**/*.py : Kafka event publishing MUST use OnexEnvelopeV1 format with 13 topics for event streaming at all workflow lifecycle stages
Applied to files:
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/ARCHITECTURE_DECISIONS.md : ARCHITECTURE_DECISIONS.md must document design rationale and decisions for the node implementation with clear reasoning for each choice
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/*.py : All ONEX node implementations must follow dependency injection and protocol-first design patterns as established in the node_cli canonical reference
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-30T21:55:10.298Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-30T21:55:10.298Z
Learning: Applies to src/omninode_bridge/nodes/**/*.py : All nodes in omninode_bridge MUST use omnibase_core standards (ModelServiceEffect, ModelServiceCompute for effect/compute nodes; NodeOrchestrator, NodeReducer with mixins for orchestrator/reducer nodes)
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:23:24.207Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T17:23:24.207Z
Learning: PLAN mode: Draft a detailed technical plan using numbered checklists with file paths, function names, and sequential actions. Declare node types, template usage, and output structure. Forbidden: Writing code or implementation logic.
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md
📚 Learning: 2025-11-24T17:22:32.195Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/canonical_patterns.mdc:0-0
Timestamp: 2025-11-24T17:22:32.195Z
Learning: Applies to src/omnibase/nodes/*/README.md : Follow canonical node directory structure with README.md, ARCHITECTURE_DECISIONS.md, protocols/, and versioned implementation directories (v1_0_0/)
Applied to files:
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.mddocs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:32:37.719Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T16:32:37.719Z
Learning: AUTONOMOUS_TASK mode: Run the full RESEARCH → REVIEW loop with no human input under pre-approved scope. Entry criteria: approved plan and no open questions. Use fail-fast ESCALATE on blockers.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:31:48.648Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/checklist_rule.md:0-0
Timestamp: 2025-11-24T16:31:48.648Z
Learning: Applies to **/work_tickets/**/*.yaml : Document workaround strategies for blockers when dependencies create chicken-egg problems, including acceptance criteria (temporary_until_regeneration) and cleanup tickets
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:31:48.648Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/checklist_rule.md:0-0
Timestamp: 2025-11-24T16:31:48.648Z
Learning: Document migration requirements when upgrading from Checklist Rule v3 to v4: add dependencies, blockers, relationships, and work_context sections to existing tickets
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T16:33:09.011Z
Learnt from: CR
Repo: OmniNode-ai/omninode_bridge PR: 0
File: .cursor/rules/pr.mdc:0-0
Timestamp: 2025-11-24T16:33:09.011Z
Learning: Applies to docs_private/dev_logs/jonah/pr/pr_description_*.md : Each PR description must include the following required sections: PR Title, Branch, PR ID or Link, Summary of Changes, Key Achievements, Prompts & Actions (Chronological with timestamps in ISO 8601 format and agent attribution), Major Milestones, Blockers / Next Steps, Metrics (Lines Changed in "+X / -Y" format, Files Modified count, Time Spent if tracked), and must include optional sections where relevant: Related Issues/Tickets, Breaking Changes, Migration/Upgrade Notes, Documentation Impact, Test Coverage, Security/Compliance Notes, Reviewer(s), and Release Notes Snippet
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:25:09.225Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/velocity_log.mdc:0-0
Timestamp: 2025-11-24T17:25:09.225Z
Learning: Applies to docs_private/dev_logs/**/velocity_log_*_to_*.md : For weekly velocity logs, cross-reference milestones and action items between days as appropriate, and update the Next Steps section on earlier days when items are completed in later days
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:24.207Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/modes.mdc:0-0
Timestamp: 2025-11-24T17:23:24.207Z
Learning: AUTONOMOUS_TASK mode: Run the full RESEARCH → REVIEW loop with no human input under pre-approved scope. Entry criteria: Approved plan with no open questions. Fail-fast ESCALATE on blockers.
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
📚 Learning: 2025-11-24T17:23:49.777Z
Learnt from: CR
Repo: OmniNode-ai/omniclaude PR: 0
File: .cursor/rules/node_standards.mdc:0-0
Timestamp: 2025-11-24T17:23:49.777Z
Learning: Applies to **/node_*/v[0-9]*_[0-9]*_[0-9]*/node.py : All ONEX nodes must include a `node.py` file implementing the main node entrypoint using the reducer pattern
Applied to files:
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md
🔇 Additional comments (7)
docs/design/DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md (1)
1-532: ✅ Well-structured canonical design document—clear separation of concerns and strong architectural foundations.The document successfully establishes the foundational ONEX workflow architecture with clear definitions of the four logical planes (Ingestion, Decision, State, Execution), explicit handler contracts, and well-motivated design principles. The repeated emphasis on the critical distinction between projection persistence (to storage) and event/intent publishing (to Kafka) is essential for correctness. Cross-references to the ticket plan are accurate, and the connection to Global Constraint #7 (handler vs. node terminology) is properly acknowledged.
Key strengths:
- Section 2.1 logical planes and 2.2 data flow diagram clearly establish unidirectional message flow
- Handler contract (Section 3.1) is explicit and testable
- Projector pattern (Section 10) disambiguates persistence from publishing with proper emphasis
- Timeout handling (Section 8.2) correctly delegates to runtime scheduler (B6) and timeout tickets (C2) for specifics
- Terminology section aligns precisely with ticket plan Global Constraint #7
docs/design/ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md (3)
29-86: Global Constraint #6 clarification is essential—clearly distinguish legacy versioned directories from new flat structure.Lines 54–70 correctly state "No versioned directories" and then provide critical clarification that existing
v1_0_0directories are legacy patterns to be migrated per ticket H1. This is exactly right. However, the distinction could be emphasized earlier in the constraint statement itself (currently the clarification comes after the rule). The current structure is acceptable as long as implementers read the full clarification section, but ensure that the migration path in H1 (OMN-956) is clearly linked in pre-implementation materials.
167-246: A2a envelope definition requires implementer awareness: ONE structure for ALL planes, NOT plane-specific variants.The clarification at lines 184–189 is critical and well-written: "single envelope per architectural plane" means the SAME
ModelEnvelopestructure is used in each plane, not that each plane has its own envelope type. This repeated emphasis is excellent. However, ensure that code generation tools (agent-contract-driven-generatormentioned in "Future Work Recommendations" section ~1534) are updated to enforce this invariant—i.e., reject attempts to create plane-specific envelope variants during contract generation.Consider adding a verification task to the contract generation pipeline (or as a CI gate) to reject plane-specific envelope definitions. This prevents accidental drift from the canonical single-envelope pattern.
721-940: F0 Projector Execution Model is thorough—synchronization diagrams and failure handling are exemplary.The extensive treatment of projection persistence ordering (Section F0, lines 721–940) with two detailed sequence diagrams is excellent. The F0 ↔ B2 interaction sequence (lines 745–785) clearly shows synchronization: projections persisted first, then intents published, then events. The failure sequence (lines 887–909) demonstrates DLQ routing when projection persistence fails.
One observation: the diagram notation uses boxes and arrows that should render correctly in GitHub markdown and Mermaid tools. Confirm that the ASCII diagrams render properly in the target platforms (GitHub, Linear, VS Code). If rendering issues occur, the "Text Reference (canonical)" section below the Mermaid dependency graph (lines 1388–1404) provides a fallback text-based representation.
Verify that the sequence diagrams in F0 (lines 745–785 and 887–909) render correctly in GitHub markdown preview and Linear ticket descriptions. If they don't, escalate to the documentation team for Mermaid-to-PNG conversion.
docs/handoffs/HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.md (3)
11-38: BLOCKER notice is prominent and clear—excellent upfront communication of critical dependency.The BLOCKER section correctly and prominently states that the refactor cannot proceed until
omnibase_core >= 0.5.0is released, clearly delineates what is BLOCKED vs. what CAN proceed in parallel, and references the Phase 0 Contingency Plan. This is exemplary blocking-issue documentation. The reference to PR #216 and ticket OMN-959 provides traceability.
391-445: Phase 0 Task 0 gate and contingency plan are thorough—enables work continuation while avoiding false starts.The Phase 0 dependency verification gate (Task 0, lines 391–409) with explicit exit criteria and failure mode is strong. The contingency plan (lines 411–445) provides:
- Clear separation of "work that CAN proceed" (directory structure, models, mocked tests) vs. "work that is BLOCKED" (base class implementations)
- Realistic escalation timeline (Day 0 through Day 7+) with specific triggers
- Practical mitigation actions including optional stub classes as workaround
This structure prevents schedule collapse if omnibase_core 0.5.x is delayed. The stub classes option (lines 440–444) with explicit "NOT for production" warning is prudent.
814-851: Pre-Implementation Meeting Requirements section is comprehensive—mandatory gate with clear agenda and output requirements.The meeting structure (lines 814–851) is well-defined with:
- Scheduling owner (Tech Lead)
- Meeting timing (3 business days before Phase 1 start)
- Attendees explicitly listed
- Detailed agenda (9 items)
- Meeting output requirements (7 items)
- Clear exit criteria (Phase 1 may NOT begin until all outputs satisfied)
- CRITICAL GATE note (lines 849–851) linking to Phase 0 Task 0 verification
Strength: The requirement at line 842 to "RACI matrix fully populated with specific names and target dates (no placeholders remaining)" is explicit and testable.
Concern: The "Fallback" option at line 825 ("If primary attendees unavailable, reschedule") may create delays if scheduling is difficult. No contingency for asynchronous decision-making is provided. Consider adding: "If synchronous meeting is not feasible within 3 business days, decisions may be made asynchronously via [decision forum/process], but evidence of decision must be documented and shared with team by [date]."
Confirm that the 3-business-day pre-implementation meeting scheduling window is realistic for your organization. If team calendars are typically overbooked, document a contingency for asynchronous decision-making to avoid schedule delays.
Summary
Add comprehensive documentation for the ONEX Runtime and Two-Way Registration architecture refactor. This establishes the canonical patterns that all future ONEX workflows must follow.
Documents Added
Design Documents:
DESIGN_TWO_WAY_REGISTRATION_ARCHITECTURE.md(v2.1.0): Canonical workflow architecture defining:ONEX_RUNTIME_REGISTRATION_TICKET_PLAN.md: 31-ticket implementation plan across 8 sections:Current State Analysis (
docs/as_is/):Handoff Documentation:
HANDOFF_TWO_WAY_REGISTRATION_REFACTOR.mdLinear Tickets Created
All 31 tickets have been created in Linear with proper dependencies, priorities (P0/P1/P2), and acceptance criteria:
Test plan
Summary by CodeRabbit
Documentation
Design
Policy
✏️ Tip: You can customize this high-level summary in your review settings.