Orchestrata Ultimate / RTM / 012-pm-volk

RTM: 012-pm-volk

Requirement to symbol to test rows for 012-pm-volk: PM Volk (Project Manager).

At a glance

Item Value
Requirement IDs 59
Traced from src/ 52 (88.1%)
Untraced 7
Cited from tests/ 1 (1.7%)
Traced in src/ but not cited from tests/ 51

Reading this matrix

This matrix lists each of the 59 requirement IDs of spec 012-pm-volk with the src/ symbols that cite it and the tests that cite it. 52 of them (88.1%) have at least one citing symbol and 7 have none.

1 requirement is also cited from tests/, and 51 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.

Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-012-* (4), REQ-012-NFR (3).

Requirement to symbols to tests

Requirement Symbols in src/ Tests citing it
REQ-012-001 PMVolk class extends BaseVolk with alias U:PM and role "Project Manager". orchestrata_ultimate/agents/volks/pm/volk PMVolk L174 none
REQ-012-002 PMVolk registers with the volk registry at import time so the kernel can discover it. none none
REQ-012-003 process() accepts a CXPPacket and dispatches on the subject field. orchestrata_ultimate/agents/volks/pm/volk process L243 none
REQ-012-004 process() handles subjects: "implement", "scope_review", "progress_update". orchestrata_ultimate/agents/volks/pm/volk _handle_progress L390
orchestrata_ultimate/agents/volks/pm/volk process L243
none
REQ-012-005 Unrecognised subjects are returned as an error CXPPacket without raising an exception. orchestrata_ultimate/agents/volks/pm/volk process L243 none
REQ-012-006 PM_SYSTEM_PROMPT instructs the LLM to count FEATURES, DATA ENTITIES, INTERFACES, and... none none
REQ-012-007 PM_SYSTEM_PROMPT specifies WARNING thresholds: >10 files, >8 features, >5... none none
REQ-012-008 _handle_scope_review() calls the LLM with PM_SYSTEM_PROMPT and the inbound packet... orchestrata_ultimate/agents/volks/pm/volk _call_scope_llm L304
orchestrata_ultimate/agents/volks/pm/volk _handle_scope_review L264
none
REQ-012-009 LLM response must include a SCOPE_RESULT token of either VALIDATED or WARNING. orchestrata_ultimate/agents/volks/pm/volk _parse_scope_status L99 none
REQ-012-010 LLM response must include an ESTIMATE block containing a JSON object with keys: files,... orchestrata_ultimate/agents/volks/pm/volk _parse_estimate L113 none
REQ-012-011 LLM response may include a WARNINGS block; absence of the block is treated as an empty... orchestrata_ultimate/agents/volks/pm/volk _parse_warnings L135 none
REQ-012-012 LLM response must include a TASK_SUMMARY block summarising the work in plain language. orchestrata_ultimate/agents/volks/pm/volk _parse_task_summary L149 none
REQ-012-013 Scope validation operates in advisory mode: a WARNING result does not halt the pipeline. orchestrata_ultimate/agents/volks/pm/volk _handle_scope_review L264 none
REQ-012-014 The parsed SCOPE_RESULT, ESTIMATE, and WARNINGS are attached to the outbound packet... orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335
orchestrata_ultimate/agents/volks/pm/volk _parse_scope_result L163
none
REQ-012-015 When the LLM returns an unparseable response, _handle_scope_review() logs the raw... none none
REQ-012-016 _detect_has_ui() scans the task description for UI-indicator keywords (web app,... orchestrata_ultimate/agents/volks/pm/volk _detect_has_ui L79 none
REQ-012-017 Keyword matching is case-insensitive. orchestrata_ultimate/agents/volks/pm/volk _detect_has_ui L79 none
REQ-012-018 _detect_has_ui() returns True if at least one keyword matches, False otherwise. orchestrata_ultimate/agents/volks/pm/volk _detect_has_ui L79 none
REQ-012-019 The has_ui boolean is stored in the outbound packet payload. orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 none
REQ-012-020 _detect_has_ui() is called once per scope-review cycle and the result is not... orchestrata_ultimate/agents/volks/pm/volk _handle_scope_review L264 none
REQ-012-021 After scope review, _handle_scope_review() routes to alias U:Ux when has_ui is True. orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 none
REQ-012-022 After scope review, _handle_scope_review() routes to alias U:Ar when has_ui is False. orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 none
REQ-012-023 All structured fields from the inbound packet (thread_id, correlation_id, context) are... orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 tests/agents/test_postman_adapter.py::test_correlation_id_and_thread_id_are_preserved_separately
REQ-012-024 The ESTIMATE JSON is forwarded verbatim in the payload so downstream volks can use it. orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 none
REQ-012-025 Routing destination is logged at DEBUG level before forwarding. orchestrata_ultimate/agents/volks/pm/volk _build_forward_packet L335 none
REQ-012-026 GoalRegistry.create() accepts name, description, priority (GoalPriority), and optional... orchestrata_ultimate/agents/volks/pm/goal_registry create_goal L215 none
REQ-012-027 GoalRegistry.activate() transitions a Goal from its current state to ACTIVE; raises... orchestrata_ultimate/agents/volks/pm/goal_registry GoalTransitionError L55
orchestrata_ultimate/agents/volks/pm/goal_registry activate_goal L253
none
REQ-012-028 GoalRegistry.update() accepts a Goal ID and a partial dict of fields; merges changes... orchestrata_ultimate/agents/volks/pm/goal_registry update_goal L283 none
REQ-012-029 GoalRegistry.complete() transitions a Goal to COMPLETED and records a completed_at... orchestrata_ultimate/agents/volks/pm/goal_registry complete_goal L313 none
REQ-012-030 GoalRegistry.block() transitions a Goal to BLOCKED and records a reason string. orchestrata_ultimate/agents/volks/pm/goal_registry block_goal L343 none
REQ-012-031 GoalRegistry.defer() transitions a Goal to DEFERRED and records a reason string. orchestrata_ultimate/agents/volks/pm/goal_registry defer_goal L373 none
REQ-012-032 GoalRegistry.cancel() transitions a Goal to CANCELLED and records a reason string. orchestrata_ultimate/agents/volks/pm/goal_registry cancel_goal L402 none
REQ-012-033 GoalRegistry.get() returns a Goal by ID; raises GoalNotFoundError when the ID does not... orchestrata_ultimate/agents/volks/pm/goal_registry GoalNotFoundError L62
orchestrata_ultimate/agents/volks/pm/goal_registry get_goal L185
none
REQ-012-034 GoalRegistry.list() returns all Goals; accepts an optional status filter. orchestrata_ultimate/agents/volks/pm/goal_registry list_goals L170 none
REQ-012-035 GoalRegistry persists all state changes to context.json under the "goals" key... orchestrata_ultimate/agents/volks/pm/goal_registry GoalRegistry L91
orchestrata_ultimate/agents/volks/pm/goal_registry _migrate_legacy_goals L125
orchestrata_ultimate/agents/volks/pm/goal_registry _save_goals L165
+8 more
none
REQ-012-036 GoalStatus enum defines: ACTIVE, RUNNING, COMPLETED, BLOCKED, DEFERRED, CANCELLED. orchestrata_ultimate/core/domain/goal PortfolioGoalStatus L23 none
REQ-012-037 GoalPriority enum defines P0 (critical), P1 (high), P2 (medium), P3 (low). orchestrata_ultimate/core/domain/goal PortfolioGoalPriority L40 none
REQ-012-038 SuccessCriteria dataclass exposes: tests_pass (bool), min_coverage_pct (float),... orchestrata_ultimate/core/domain/goal PortfolioSuccessCriteria L50 none
REQ-012-039 Goals serialise to and deserialise from JSON without data loss (all fields round-trip). orchestrata_ultimate/core/domain/goal PortfolioGoal L69 none
REQ-012-040 GoalRegistry loads existing goals from context.json on construction so state survives... orchestrata_ultimate/agents/volks/pm/goal_registry GoalRegistry L91
orchestrata_ultimate/agents/volks/pm/goal_registry __init__ L111
orchestrata_ultimate/agents/volks/pm/goal_registry _load_goals L160
none
REQ-012-041 GoalReportGenerator.generate() accepts a Goal and iteration results dict; returns a... orchestrata_ultimate/agents/volks/pm/goal_report GoalReport L37
orchestrata_ultimate/agents/volks/pm/goal_report GoalReportGenerator L68
orchestrata_ultimate/agents/volks/pm/goal_report ReportSection L21
+2 more
none
REQ-012-042 Report includes a summary section stating whether success criteria were met. orchestrata_ultimate/agents/volks/pm/goal_report _add_summary_section L435
orchestrata_ultimate/agents/volks/pm/goal_report _build_sections L220
none
REQ-012-043 Report includes a test results section comparing actual vs required test pass status. orchestrata_ultimate/agents/volks/pm/goal_report _add_test_results_section L456
orchestrata_ultimate/agents/volks/pm/goal_report _build_sections L220
orchestrata_ultimate/agents/volks/pm/goal_report _evaluate_criteria L127
+1 more
none
REQ-012-044 Report includes a coverage section comparing actual coverage pct against min_coverage_pct. orchestrata_ultimate/agents/volks/pm/goal_report _evaluate_coverage L291
orchestrata_ultimate/agents/volks/pm/goal_report _evaluate_criteria L127
none
REQ-012-045 Report includes a spec coverage section comparing actual spec coverage pct against... orchestrata_ultimate/agents/volks/pm/goal_report _evaluate_criteria L127
orchestrata_ultimate/agents/volks/pm/goal_report _evaluate_spec_coverage L314
none
REQ-012-046 Report includes a trend analysis section using iteration history to identify improving... orchestrata_ultimate/agents/volks/pm/goal_report _add_trend_section L480
orchestrata_ultimate/agents/volks/pm/goal_report _build_sections L220
none
REQ-012-047 Gap analysis identifies every criterion that was not met and states the delta (e.g.,... orchestrata_ultimate/agents/volks/pm/goal_report _analyze_gaps L158
orchestrata_ultimate/agents/volks/pm/goal_report _check_coverage_gap L337
none
REQ-012-048 Recommendations section lists concrete next actions derived from identified gaps. orchestrata_ultimate/agents/volks/pm/goal_report _check_iteration_limit L394
orchestrata_ultimate/agents/volks/pm/goal_report _check_oscillation L359
orchestrata_ultimate/agents/volks/pm/goal_report _generate_recommendations L189
none
REQ-012-049 Overall progress is calculated as (criteria met / total criteria) * 100, rounded to... orchestrata_ultimate/agents/volks/pm/goal_registry _estimate_progress L494
orchestrata_ultimate/agents/volks/pm/goal_registry _score_tests L524
orchestrata_ultimate/agents/volks/pm/goal_report _calculate_progress L416
none
REQ-012-050 GoalReportGenerator.generate() is a pure function โ€” it does not mutate the Goal or... orchestrata_ultimate/agents/volks/pm/goal_report GoalReportGenerator L68
orchestrata_ultimate/agents/volks/pm/goal_report generate L83
none
REQ-012-051 PM monitors CXP packet flow for progress tracking and emits iteration_stalled when... orchestrata_ultimate/agents/volks/pm/budget is_stalled L141
orchestrata_ultimate/agents/volks/pm/volk _emit_stall_if_due L533
orchestrata_ultimate/orchestrator/pipeline_runner _notify_pm_iteration_end L1112
+1 more
none
REQ-012-052 PM emits progress_update at each stage transition (US-003). Implemented:... orchestrata_ultimate/agents/volks/pm/volk _emit_stage_progress L484 none
REQ-012-053 PM emits budget_warning when 80% of any budget (LLM calls, duration, fix cycles) is... orchestrata_ultimate/agents/volks/pm/budget readings L71
orchestrata_ultimate/agents/volks/pm/volk _emit_budget_events L496
none
REQ-012-054 PM emits budget_exceeded when 100% of any budget is consumed; advisory only โ€” never... orchestrata_ultimate/agents/volks/pm/budget readings L71
orchestrata_ultimate/agents/volks/pm/volk _emit_budget_events L496
none
REQ-012-055 PM produces a structured iteration_summary dict (files, tests passed/failed, pass... orchestrata_ultimate/agents/volks/pm/budget build_iteration_summary L163
orchestrata_ultimate/agents/volks/pm/volk finalize_iteration L562
none
REQ-012-056 PMConfig (SPEC-012 ยง Configuration) governs budgets and scope thresholds; defaults... orchestrata_ultimate/agents/volks/pm/volk _apply_scope_threshold_warnings L456 none
REQ-012-NFR-001 PM processing adds < 1s latency to pipeline none none
REQ-012-NFR-002 PM is advisory only โ€” never blocks pipeline none none
REQ-012-NFR-003 PM state survives process restart (Redis-backed) none none