One workspace graph
One identifier scheme keeps every cross reference live
The tracker is the surface. The graph is the substance. Every record has a stable identifier you can paste anywhere, and every reference resolves both ways, so a doc knows which issues cite it, and an issue knows which deploys closed it.
ENG- Issue
Atomic unit of work. Links to the Signal that drove it, the project it belongs to, the sprint it commits to, the PR that ships it.
PRJ- Project
Scoped bet with an owner and an outcome. Issues roll up; deploys close it; the decision doc explains why it existed.
INI- Initiative
A larger bet that groups projects under one strategic intent. Carries its own roadmap and rolls up across teams.
CYC- Sprint
Time-boxed commitment for a team. Velocity, risk callouts from NorthGraph, and a definition of done you can grade against.
MIL- Milestone
A dated checkpoint on a project or initiative. Triggers status updates and notifies stakeholders when slipping.
SIG- Signal
Customer or internal signal with attribution. Closes the loop with the originator when the linked deploy lands.
DOC- Doc
Decision brief, runbook, or spec. Bidirectional links to every issue and project that references it.
CAN- Canvas
Versioned diagram with pinned comments. Pins to issues, projects, or NorthGraph effects so the picture stays in sync with the work.
PR # Pull request
Branches, commits, checks, NorthGraph verdict, deploy marker. Attached to the issue by identifier the moment the branch is created.
Product development
Product decisions stay connected to shipped work
VectorGraph is not just a backlog for engineering tasks. It is the place where product teams shape bets, connect customer evidence to plans, track the engineering work, and prove what shipped after release.
Shape the bet before work starts
Turn customer signal, leadership direction, and strategy into a project with a named outcome before it becomes a sprint commitment.
Signal SIG-441 -> Project PRJ-104 -> Sprint 14Keep specs and execution together
Attach the decision brief, acceptance criteria, canvas, and linked issues to the same record so product and engineering review the same context.
DOC-77 linked to ENG-2189 and PR #2847Review tradeoffs while work is moving
See owners, scope changes, code risk, requester impact, and blocked dependencies on the work itself instead of reconstructing the story in status meetings.
Scope changed after spec link · reviewer requiredClose the loop after release
When the deploy lands, VectorGraph closes the issue, updates the project, records the evidence, and tells the originating requester what changed.
Deploy c93af1e closed ENG-2189 and SIG-441
Four actor classes one audit log
Humans agents automations and guests share one workspace with separate scopes
Treating agents and automations as first-class actors with their own identities (instead of letting them borrow a human's token) is what makes the question "who shipped this?" actually answerable.
Engineer
Human · Clerk session- Can
- Read, write, approve, merge across every team they belong to.
- Cannot
- Cross a private-team boundary they were not invited to.
Coding agent
Agent · MCP token- Can
- Read context bundles, open PRs, attach evidence, comment on issues.
- Cannot
- Merge a PR, deploy, change billing, or rotate credentials.
Automation / CI
Service · scoped CLI token- Can
- File issues, mark deploys, post NorthGraph reports, run scheduled triage.
- Cannot
- Act outside the scopes printed on the token. Tokens are revocable per job.
Guest reviewer
Human · Clerk guest grant- Can
- Read the issues, docs, and projects the inviting team explicitly shared.
- Cannot
- See private teams, mutate state, or invite new members.
One issue end to end
From a Slack message to a closed loop with every actor named
A customer request that becomes a shipped change. Six rows. Four actor types. One audit log, the same log a reviewer, a security engineer, and a compliance auditor would all consult.
Filed SIG-441: bulk-archive workflow takes too many clicks for ops teams.
Triaged SIG-441 → ENG-2189. Assigned to Sprint 14. Tagged ops.workflows.
Picked up ENG-2189 via read_context_bundle. Opened PR #2847 from feat/eng-2189-bulk-archive.
Posted verdict on #2847: clean · risk medium · 3 effects · 41 tests impacted · 0 policy violations.
Reviewed #2847. Requested one rename. Approved and merged into main.
Closed ENG-2189. Closed SIG-441. Notified karri with deploy hash and change summary.
Native code integrations
Branches commits PRs and deploys attach themselves
Signed webhooks. Delivery-ID idempotency. Identifier-based linking. The model is provider-agnostic, every code host plugs into the same surfaces, so adding the next integration doesn't change how this works. Workspace scope is enforced at the installation, so a private team's repo traffic stays inside the private team.
- Branches
Identifier-in-branch detection. A branch like feat/eng-2189-bulk-archive auto-attaches to ENG-2189 the moment it's pushed.
feat/eng-2189-bulk-archive - Commits
Identifier-in-message detection. Commit subject or body referencing an issue keeps history attached even when the branch name doesn't.
fix: archive race condition (ENG-2189) - Pull requests
Title, description, and base branch are all parsed. NorthGraph verdict, checks, and review state stream onto the issue.
PR #2847 · feat: bulk archive · merged - Deploys
Deploy markers from CI close the linked issues and notify the originating signals. No per-PR plumbing.
vectorgraph deploy mark --sha c93af1e
Context that travels with the work
Open one issue and get everything attached to it
Issue ENG-2189 doesn't just open a row in a table. It returns the full context attached to that work, the Signal behind it, the spec, the linked PRs, the activity feed, the customers waiting on the deploy. A human opens it in the workspace; an agent calls read_context_bundle and gets the same payload, permission-filtered to what its identity is allowed to see.
- The issue itself
Title, description, status, assignee, sprint, project, the row the identifier resolves to.
- Linked Signal
The customer or internal signal that drove the issue, with attribution and the originating channel.
- Spec doc
The decision brief or spec the issue references, with version history and current acceptance criteria.
- Pull requests
Open and merged PRs attached by branch or commit reference, with NorthGraph verdict and CI state.
- Activity
Comments, status changes, agent actions, and deploy markers, every event ordered by time.
- Customers to notify
The requesters whose signals would close when this ships, ready for the close-the-loop email.
Know where you stand
Live rollups reports that compose themselves and early signals when scope drifts
The graph is also the reporting layer. Status numbers come from the work underneath them, the weekly digest writes itself, and issues that no longer line up with the bet that justified them get flagged on the record, before the retrospective notices.
Rollups derive themselves
Every project, sprint, milestone, and initiative carries a live status from the issues under it. Completion percent, burndown, slipping milestones, and risk callouts come from the graph, not from someone updating a number once a week.
PRJ-104 Migration readiness · 14/22 issues · 64% · on trackReports that write themselves
Weekly digests, sprint reports, project updates, board narratives, auto-composed from the graph. Pick the audience and cadence; the report carries shipped work, slipped milestones, customers waiting, and what's blocking.
Weekly digest · 12 issues shipped · 4 signals closed · 2 slippedEarly signals on scope drift
When a sprint fills with work that has no upstream Signal or bet, when an issue's acceptance changes after the spec is linked, or when a project grows past what it set out to do, VectorGraph flags it on the record itself, not in the retrospective.
Sprint 14 · 3 of 14 issues have no linked Signal or project
Get started
Bring your team onto the shared work graph
Create an account, name a workspace, invite your team, connect your code, and point your agents at MCP. Start turning company context into shipped work from one shared workspace.