feat: workflow/state machine detection — StatusType nodes, TRANSITIONS edges#560
feat: workflow/state machine detection — StatusType nodes, TRANSITIONS edges#560marxo126 wants to merge 3 commits into
Conversation
|
@marxo126 is attempting to deploy a commit to the NexusCore Team on Vercel. A member of the Team first needs to authorize it. |
CI Report❌ Some checks failed Pipeline Status
Test Results
✅ All 6524 tests passed 97 test(s) skipped — expand for details
Code CoverageTests
📋 View full run · Generated by CI |
|
Please make sure to include your changes in the |
|
ce2917c to
3838ce7
Compare
|
Done — latest push includes |
a9a8fbc to
b5a9a79
Compare
…S edges Detect status type definitions (union types, enums) and status transition patterns (Prisma .update, direct assignments, setters) across TS/JS/Python/Java. Creates StatusType nodes with statusValues/statusKind properties and TRANSITIONS edges with fromStatus/toStatus/entityType/isTransactional metadata. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…used imports Adds StatusType entry to both NODE_COLORS and NODE_SIZES Record objects in gitnexus-web to satisfy the NodeLabel type constraint. Removes unused DetectedStatusType and DetectedTransition type imports from test file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
c849eb3 to
c988e7a
Compare
|
Please submit a new PR if this is still relevant |
Summary
StatusTypenode type withTRANSITIONSedges mapping which functions change which statusesWhat it detects
Status type definitions
type GrantStatus = 'DRAFT' | 'ACTIVE' | 'COMPLETED'enum OrderStatus { PENDING = 'pending' }class OrderStatus(Enum): PENDING = 'pending'enum Status { PENDING, ACTIVE, COMPLETED }Status transitions
prisma.grant.update({ data: { status: 'ACTIVE' } })tx.step.update({ data: { status: 'approved' } })order.status = 'shipped'/self.status = 'active'entity.setStatus('approved')/obj.set_status('active')entity.update({ status: 'completed' })Entity-name matching
Transitions matched to StatusType by entity name first (e.g.,
prisma.grant.update->GrantStatus), falling back to value-based matching only when entity name doesn't match.Schema changes
StatusTypenode table:id, name, filePath, statusValues STRING[], statusKindTRANSITIONSadded to REL_TYPESReal-world validation (Next.js + Prisma, 30K nodes)
Known limitations
/status|state|phase|stage|step|workflow|lifecycle/iOR 2+ status-like values. Produces false positives for UI step types (~35% noise)..status = 'value'is detected — including UI state and test mocks.fromStatus,toStatus,entityTypestored asdirect-update:grant:DRAFT->ACTIVE, not separate LadybugDB columns.Test plan
🤖 Generated with Claude Code