LearnNewsExamplesServices
Frontmatter
id14567
titleDirection-attribution pass: EVOLUTION_GOAL anchors + motion mapping
stateClosed
labels
enhancementaiarchitecture
assigneesneo-fable
createdAt3:13 AM
updatedAt6:32 AM
githubUrlhttps://github.com/neomjs/neo/issues/14567
authorneo-fable
commentsCount0
parentIssue14565
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14566 Direction-contract Decision Record (ADR-0028 amendment path)
blocking[ ] 14568 Per-direction {v,s,r} composition on the temporal pyramid
closedAt6:32 AM

Direction-attribution pass: EVOLUTION_GOAL anchors + motion mapping

Closed Backlog/active-chunk-2 enhancementaiarchitecture
neo-fable
neo-fable commented on 3:13 AM

Context

Leaf 2 of Epic #14565. First implementation leaf: evolution direction becomes computable by attributing work-graph motion to direction keys. Blocked-by the Decision-Record leaf (schema authority).

The Problem

Motion (merged PRs, commits, sessions, tickets, discussions) is directionless in the graph today. The hybrid representation from #14453 OQ1: declared anchors (EVOLUTION_GOAL nodes generalizing #14442's BUSINESS_GOAL; small-N capped; the release train seeds free) × versioned emergent clusters (concept-region + embeddings over the 20,526-concept spine) — and the mapping is the signal, deriving three states per unit of motion: aligned / unattributed (innovation-or-drift, human judges) / starved (INTENT_STARVED — declared intent nothing serves). June-2026 ("design and UX got fully lost", operator post-mortem) is the canonical INTENT_STARVED instance this pass must be able to represent.

The Architectural Reality

  • Dream pipeline services own the pass (ai/services/ — sibling precedent per structure map; exact placement via structural-pre-flight at implementation).
  • Every concept reference routes through canonicalizeConceptId (ai/services/graph/, merged — #14453 OQ1 RESOLVED_TO_AC); the 2,705-alias-cluster hazard is why.
  • Attribution keys are {directionKey, mappingVersion} pairs, append-only (re-clustering = new version writing NEW attributions, never rewriting).
  • Durable facts land in graph/issue/summary substrate — never board columns (GPT STEP_BACK V-B-A anchor).
  • New node class ⇒ #14426 post-sync integrity canary required.

The Fix

(a) EVOLUTION_GOAL node class per the DR; release-train anchors seeded; operator-owned intent weights (Tier-4 set, never computed). (b) The attribution pass: motion events → deterministic direction keys, emitting the three derived states; UNATTRIBUTED as first-class pool (below coverage floor: render the pool, never split). (c) Conservation identity Σ_D v_D + v_UNATTRIBUTED = v_total checked at L1 build (defect, not noise, on failure). (d) Anchor-staleness discipline: #14447 steward-cadence analog on goals (stale declarations corrupt ranking worse than none — Row A falsifier).

Acceptance Criteria

  • EVOLUTION_GOAL minted through canonical ids only; regression fixture includes a known alias cluster.
  • Attribution emits {directionKey, mappingVersion} append-only pairs; a v2 remap never rewrites v1 history.
  • Conservation identity machine-checked; UNATTRIBUTED first-class.
  • INTENT_STARVED derivable per declared anchor (the June-2026 shape representable).
  • #14426 post-sync canary passes for the new node class.
  • Every emitted direction fact carries its falsifyingQuery (#14430).
  • Additive-only consumption: nothing in this pass gates the computed route (fail-open HARD AC).

Out of Scope

Velocity composition (leaf 3); any render; OQ7 lattice edges; promise/ROI weighting.

Related

Parent: Epic #14565 (blocked-by its DR leaf). #14453 (source) · #14442 · #14422/#14472 (concept spine) · #14447 · #14426 · #14430.

Origin Session ID: a5af7cf6-45a3-42db-8a30-f04f4241a55c Retrieval Hint: "direction attribution EVOLUTION_GOAL mapping aligned unattributed INTENT_STARVED conservation"

tobiu referenced in commit 292d0a8 - "feat(ai): direction attribution — EVOLUTION_GOAL schema + the pure pass (#14567) (#14626) on 6:32 AM
tobiu closed this issue on 6:32 AM