generated from coulomb/repo-seed
feat(P3): IHF Phase 3 complete — Governance and Decision Linkage
Implements the full governance layer: - Schema: requirements, decision_records, policy_references, implementation_change_references; requirement_candidates gets requirement_id back-reference - RequirementsController (index/show; promotion-only create) - DecisionRecordsController (CRUD + policy/impl ref management) - GovernanceDashboardAction on HubsController (AutoRefresh) - PromoteToRequirementAction + LinkToDecisionAction on candidates - Outcome immutability enforced at controller level (fill excludes outcome) - Full six-outcome vocabulary with Tailwind color roles - Integration tests for all Phase 3 paths - FrontController: registers Phase 2 missing controllers + all Phase 3 - SCOPE.md + docs/phase3-summary.md updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,10 @@ import Web.Controller.Hubs ()
|
||||
import Web.Controller.Widgets ()
|
||||
import Web.Controller.InteractionEvents ()
|
||||
import Web.Controller.Annotations ()
|
||||
import Web.Controller.AnnotationThreads ()
|
||||
import Web.Controller.RequirementCandidates ()
|
||||
import Web.Controller.Requirements ()
|
||||
import Web.Controller.DecisionRecords ()
|
||||
import Web.Controller.Sessions ()
|
||||
|
||||
instance FrontController WebApplication where
|
||||
@@ -20,6 +24,10 @@ instance FrontController WebApplication where
|
||||
, parseRoute @WidgetsController
|
||||
, parseRoute @InteractionEventsController
|
||||
, parseRoute @AnnotationsController
|
||||
, parseRoute @AnnotationThreadsController
|
||||
, parseRoute @RequirementCandidatesController
|
||||
, parseRoute @RequirementsController
|
||||
, parseRoute @DecisionRecordsController
|
||||
]
|
||||
|
||||
instance InitControllerContext WebApplication where
|
||||
@@ -45,6 +53,9 @@ defaultLayout inner = [hsx|
|
||||
<a href={HubsAction} class="font-semibold text-indigo-600">inter-hub</a>
|
||||
<a href={HubsAction} class="text-sm text-gray-600 hover:text-gray-900">Hubs</a>
|
||||
<a href={WidgetsAction} class="text-sm text-gray-600 hover:text-gray-900">Widgets</a>
|
||||
<a href={RequirementCandidatesAction} class="text-sm text-gray-600 hover:text-gray-900">Candidates</a>
|
||||
<a href={RequirementsAction} class="text-sm text-gray-600 hover:text-gray-900">Requirements</a>
|
||||
<a href={DecisionRecordsAction} class="text-sm text-gray-600 hover:text-gray-900">Decisions</a>
|
||||
<div class="ml-auto">
|
||||
<a href={DeleteSessionAction} class="text-sm text-gray-500 hover:text-gray-700">Sign out</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user