Skip to content

feat(schedule): derive auditable schedule outcomes - #517

Open
seonghobae wants to merge 22 commits into
feat/work-item-hierarchy-domain-287from
feat/schedule-outcome-domain-287
Open

feat(schedule): derive auditable schedule outcomes#517
seonghobae wants to merge 22 commits into
feat/work-item-hierarchy-domain-287from
feat/schedule-outcome-domain-287

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Buyer outcome

Refs #287. This bounded stacked slice adds a framework-neutral schedule-outcome derivation domain above the four-level hierarchy parent. It distinguishes observed execution facts from versioned early/on-time/late, in-progress, blocked, skipped, cancelled, and not-performed interpretations without silently treating missing evidence as failure.

Exact current stack and scope

  • current parent: feat(schedule): establish four-level work-item hierarchy domain #515 feat/work-item-hierarchy-domain-287@36c11dd0bf907569184d7d73172b675d21bd0ff1;
  • exact contributor head: 73ce4227d761c79a9fcad39b0455fec4b35b6274;
  • exact head tree: 74db28396ac304ddd103cbf4efe6fb28b36005dc;
  • current parent is the exact merge base; child is ahead-only by 22 commits and zero-behind;
  • effective current-parent→child semantic diff remains exactly eight outcome-domain/evidence paths: CHANGELOG.md, docs/doctoring/schedule-outcome-domain.md, package.json, server/schedule_outcome_domain.mjs, tests/unit/changelog-release-notes.test.mjs, tests/unit/coverage-script-contract.test.mjs, tests/unit/schedule-outcome-domain.test.mjs, and tests/unit/schedule-outcome-domain-edge.test.mjs;
  • a fresh current-head review-thread sweep returns zero unresolved threads; and
  • no qualifying independent current-head APPROVED review exists.

Earlier parent movement was reconciled non-destructively and stale inherited bytes that would have removed or weakened parent orchestrator attribution behavior were restored. Any future parent/head movement invalidates stack-sensitive evidence until parent→child semantics are freshly reconciled.

Outcome contract

  • separates factual inputs from the derived outcome and explanation payload;
  • supports not_started, in_progress, completed_early, completed_on_time, completed_late, not_performed, skipped, cancelled, and blocked under explicit derivation version schedule-outcome/v1;
  • requires explicit accountable reason evidence for skipped, cancelled, and not-performed outcomes rather than inferring them from absent dates;
  • applies configurable non-negative on-time tolerance and retains exact baseline/current dates used in the explanation;
  • requires auditable reason/blocker timestamps to carry an explicit Z or numeric UTC offset so deployment-local timezone parsing cannot change the represented instant;
  • treats exact tolerance boundaries deterministically and preserves missingness;
  • rejects contradictory or impossible execution evidence;
  • returns immutable output/source explanation structures; and
  • covers ordinary, edge, malformed, missing, blocked, explicit-reason, leap-day, timezone-offset, and exact-boundary cases under the canonical test producer.

TDD and current repair evidence

The current-head repair follows an executable RED → fix sequence for Devin's timezone-ambiguity finding:

  • 3bfa11fb96270fd3a0802dba222f62e45d35ef38 added realistic reason-event and blocker regressions proving offset-less audit timestamps were still accepted; hosted Server Tests run 32755033364 failed in schedule-outcome-domain-edge.test.mjs with Missing expected exception.
  • 73ce4227d761c79a9fcad39b0455fec4b35b6274 changed the production timestamp boundary to require an explicit Z or ±HH:MM offset before parsing.
  • current Server Tests run 32808080518 is terminal success on the PR's synthetic parent→child merge revision d871e3a6c720e3e9f537c1aaa923e16bd5af2b79; unit-and-api job 97681961662 ran both schedule-domain suites and specifically passed requires explicit timezone offsets for auditable timestamps together with the surrounding contract tests. That is strong product-behavior evidence for the repaired stack, but it is not immutable-contributor-head merge authority because the current repository workflow still checks out the synthetic merge revision until fix(ci): execute Server Tests on exact PR heads #523 integrates.
  • Dependency Review 32808080524 and OSV Scanner 32808080762 are also terminal run-level success for this current head/stack generation.

All four current review threads are resolved after verification: the offset-less timestamp defect is fixed and executable GREEN exists; blocker ordering is offset-safe; the UTC-day future-date behavior is intentional under schedule-outcome/v1; and explicit terminal reason-event precedence is the documented taxonomy policy while underlying execution/blocker facts remain in the immutable explanation. None of these model/informational submissions constitutes a qualifying independent approval.

The PR remains stacked and must not integrate independently of #515. Organization default-branch required-workflow authority must be regenerated only after the parent is protected-shipped and this slice is reconciled onto the resulting live develop head; current stacked-branch success cannot be transferred across that restack.

Standards and integration boundary

docs/doctoring/schedule-outcome-domain.md distinguishes active-PR design from protected shipped truth and records source facts, derivation versioning, uncertainty/missingness boundaries, rollback, and research/standards traceability. ScopeWeave's taxonomy is a product contract; it is not represented as a verbatim ISO or PMI taxonomy.

This PR does not close #287. Subsequent authorization, persistence, API/UI, variance, forecasting, and decision-view slices remain separate.

Merge gate

Do not integrate before #515. After the parent reaches protected develop, reconcile this exact bounded semantic diff onto the resulting live head and regenerate every then-applicable repository and organization CI/browser E2E/owned statement-branch-function-line coverage/docstring/CodeQL/SAST/security/dependency/supply-chain/package/provenance/required-workflow gate on the unchanged restacked head. ScopeWeave #523 and ContextualWisdomLab/.github#1222 remain the repository-native and organization-reusable exact-head evidence-control owners. Valid unresolved defects must remain zero and the live default-branch pull-request rule must be satisfied by one qualifying independent current-head approval under active ruleset 18156473; that ruleset does not require latest-push approval. Synthetic/predecessor/status-only/model-only evidence cannot authorize integration.

Refs #287


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 043d0185-93c5-4701-b485-88e78fa36c15

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as ready for review August 15, 2026 22:55
@cursor

cursor Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Rebuild the schedule-outcome child on the exact current #515 hierarchy head, preserving the parent OpenCode/NIM and release-note protections while retaining only the bounded outcome-domain source, tests, coverage registration, and documentation delta.
Strengthen the published-release regression so stacked reconciliation cannot silently delete the GitHub Pages deployment/operator note from the immutable 1.0.0 changelog section.
Restore the immutable 1.0.0 GitHub Pages deployment/operator release note removed during stacked semantic reconciliation. The preceding regression commit locks this published note against future parent/child rebuilds.
seonghobae added a commit that referenced this pull request Aug 17, 2026
Rebuild the terminal reason authorization/audit child on the exact current #517 outcome-domain head, retaining parent release-note and NVIDIA NIM/OpenCode protections while preserving only the bounded reason-event domain, tests, coverage registration, and doctoring delta.
Bring PR #517 onto current parent #5157e5278f without rebasing or force-pushing. A follow-up stack-preservation commit restores the current-parent shared package/changelog state while retaining the bounded schedule-outcome delta.
Restore the current #515 hierarchy/orchestrator tree while retaining only the bounded schedule-outcome delta. Preserve tenant-bound orchestrator attribution source/tests/docs and combine package/changelog registrations without transferring stale parent content.
@opencode-agent opencode-agent Bot added priority: medium Normal-priority or P2 work scope: product-gap Customer-visible product gap status: blocked Blocked by conflict, dependency, or required prerequisite type: feature New or expanded product capability labels Aug 22, 2026
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

1 similar comment
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Caution

Review failed

An error occurred during the review process. Please try again later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread server/schedule_outcome_domain.mjs
Comment thread server/schedule_outcome_domain.mjs

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread server/schedule_outcome_domain.mjs

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread server/schedule_outcome_domain.mjs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: medium Normal-priority or P2 work scope: product-gap Customer-visible product gap status: blocked Blocked by conflict, dependency, or required prerequisite type: feature New or expanded product capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant