Project and product management for the agentic era
Tickets were written for people who knew what you meant. Agents only know what you wrote.
NEWWORK Projects turns notes, emails and contracts into briefs any coding agent can build from, hands them over MCP, and only calls work done when the code and the checks prove it.
Free for up to 10 people · agents never metered · hosted in the EU
Export reports
The ticket as it was written
As a user1 I want to export reports2 so that I can use the data in Excel.
Acceptance criteria:
– Export works3
– Should be fast4
- 1Who? Finance, managers, everyone?
- 2Which reports? Hours, budgets?
- 3Not testable. Works how?
- 4How fast, with how much data?
- 5Where does this live in the code?
› What should I pick up next?
●newwork-projects ·pm-my-work
└ CHK-142 Export reports · readiness 50 · not ready for agent
└ Missing: checks that can be tested, where it lives in the code
Waiting until CHK-142 is ready for agent_
What we won’t compromise on
Five rules. Built into the product, not the pitch.
Each rule links to the part of the product that enforces it. If the product can’t enforce it, we don’t claim it.
- 01We don’t guess. We ask.When your notes don’t say who, how much or what it is called, the brief asks instead of inventing an answer.
- 02Every requirement quotes its source.Specs cite the page, the slide or the email they come from, and the server checks each quote word for word.
- 03AI acts with your rights, after you confirm.Nova uses your own session. Every change it prepares waits as a card until you press Confirm.
- 04Agents are teammates, never metered.Any MCP agent gets the brief, the checks and over 30 tools, with the rights of its person. Calls are never counted.
- 05Done is proven, not declared.Code moves the ticket, and a ticket is Verified only when every check passed with evidence.
Agents don’t fail at code. They fail at guessing.
Tickets used to be read by people who knew the product and could walk over and ask. An agent reads only what is written, fills every gap with the most plausible answer, and ships it with confidence.
| What the ticket said | What the agent guessed | What the brief says |
|---|---|---|
| “Export reports” | Every report, as XLSX, for everyone | One month of logged hours, CSV with semicolons, managers only |
| “Should be fast” | A cache that shows yesterday’s numbers | 10,000 rows in under 2 seconds, totals match the overview |
| “Fix the login bug” | A different login bug | Steps to reproduce, expected, actual and the exact error |
| “Add a delete button” | Deletes at once, for every role | Admins only, a confirmation with exact wording, undo for 10 seconds |
The principle
We don’t guess. We ask.
When the AI writes a brief and your notes don’t say who, how much or what something is called, it doesn’t pick an answer. It lists an assumption you keep or strike, or an open question. The ticket isn’t Ready for agent until someone answers.
Anatomy of a brief
Six sections and a list of checks. Each one removes a kind of guess, and the readiness score weighs the four an agent can’t do without.
Intent
+25 readinessWhat it achieves and why, in a sentence or two. It is the tie-breaker for every decision the rest of the brief does not cover.
Without it
The agent optimises for the literal title and builds “an export”.
Specs written from the contract. Not from memory.
Drop in the PDFs, the customer’s emails with their attachments, the kick-off deck and the spreadsheet. AI writes the spec from them, every requirement cites where it comes from, and the server checks each quote before you see it.
Overtime export for payroll
In reviewRequirements
1.One row per person and day, with project and ticket.S2
2.Exports close on the 3rd working day of the month.S1 · p. 4
3.Columns in the order payroll imports them.S4 · Columns
Where the sources disagree
“Separator: comma.”S3 · slide 7 “Please use semicolons, our Excel is German.”S2
The spec follows S2, the newer source.
6 quotes checked word for word · 1 left out: not found in S3
- S1Framework agreement v3.pdfPDF · 14 pages · 2 Sep
- S2Anna Berg: Re: export for payrollEmail · 2 attachments · 9 Oct
- S3Kick-off.pptx12 slides, 1 hidden · speaker notes
- S4Payroll columns.xlsx2 sheets
- S5Whiteboard.jpgRead by AI
§ 6.2 Reporting. The contractor provides the monthly time report as a machine-readable file. Exports close on the 3rd working day of the month, after which corrections need written approval.
- 01Checked word for wordA quote that is not in the source is left out, and the result tells you so.
- 02Where the sources disagreeDeck says comma, email says semicolon: the spec quotes both and says what it follows.
- 03Read the way files arrivePDF pages, slides with speaker notes, sheets, tracked changes, email attachments, and screenshots read by AI.
- 04Straight to tickets and agentsBreak the spec into briefs; agents read it with its sources over MCP.
Feedback and roadmap
And what customers ask for, tied to the tickets that answer it.
Feedback from calls, Intercom, Zendesk, email and Slack, grouped into themes with account value and ranked by RICE (Pro). A public roadmap customers vote on, and hear from when it ships (Business).
Theme · 14 customers · €182k a year
“We retype overtime into payroll every month.”
Most likely answered by ET-11 · Link all
| Ticket | Asked | Worth | RICE |
|---|---|---|---|
| ET-11 Overtime export for payroll | 14 | €182k | 336 |
| ET-19 Approve absences from Slack | 9 | €96k | 151 |
| ET-23 Bulk edit shifts | 6 | €41k | 64 |
Planned
Bulk edit shifts
38
Approve absences from Slack
27
In progress
Export for payroll
112
Shift swap requests
41
Shipped
Dark mode
64
Holiday calendar import
52
Voters hear when it starts and ships. No keys, no names.
An AI teammate that asks before it acts.
Nova answers from your tickets, specs, time, roadmap and code, and prepares the change. It never gets more rights than the person asking, and nothing runs until they confirm.
- 01
Your session, not a superuser
Row-level security, grants and triggers decide for Nova exactly as they do in the app. Keys, tokens and passwords are out of its reach.
- 02
Every change is a card first
New tickets, statuses, comments, time, any row: shown from and to, run as you on Confirm, dropped on Discard.
- 03
It reads your codePro
The repositories assigned to a project, at the head of main. Answers name the files.
- 04
Forecasts, risks and plans
Ask when it ships, what is stuck, or for a plan, and get cards with dates, severity and tickets.
Worked 14 s · read 1 file
- Reading ET-11 and its pull requests
- Searching the code for “overtime export”
- Reading scan-bb/src/overtime/export.ts
Pull request #41 was opened as a draft, and drafts don’t move tickets. It left draft an hour ago, with an approving review and passing checks. exportOvertime() now writes one row per person and day, as the brief asks.
Hand it to any agent.
One URL and a personal token. Cursor, Claude Code, Codex, VS Code or anything else that speaks MCP gets the brief, the checks and over 30 tools to do the work around the code.
Everyone gives agents a seat. We give them a brief.
Tools
- Find
pm-my-workpm-item-getpm-spec-getAssigned work, the brief, its checks and readiness, and the spec with its sources.
- Start
pm-item-startIn progress, a branch name, a commit prefix, and a warning when the brief isn’t ready.
- Prove
pm-check-tickpm-pr-linkEach check passed with the pull request, commit or test that proves it.
- Track
pm-timer-startpm-timer-stopA live timer, so agent hours land on the timesheet.
●On every plan, including Free. MCP calls are never counted or metered.
Add to .cursor/mcp.json in your repository, or ~/.cursor/mcp.json for every project:
{
"mcpServers": {
"newwork-projects": {
"url": "https://app.newworkprojects.com/api/mcp",
"headers": {
"Authorization": "Bearer nwmcp_…"
}
}
}
}Create the token in Workspace settings → Agents & MCP. It acts as you, in one workspace.
Or hand the ticket to a coding agent
One click in the Code tab gives a Cursor cloud agent the brief and the checks. It opens a pull request named with the key, and the ticket moves to In review when it is done.
Done is proven, not declared.
Name the ticket in a branch, pull request or commit and the code moves it. A ticket is Verified only when every acceptance check passed with evidence, no pull request is still open and nothing waits for review.
Export a month of logged hours as CSV
Acceptance checks
4 of 4 provenGiven a manager, when they export March, then the file has one row per person and day
Pull request #381 via AI agentThe totals match the monthly overview
Test: npm test: 14 passed via AI agentA member cannot export someone else’s hours
Pull request #381Test: npm test: 14 passed via AI agent10,000 rows export in under 2 seconds
Test: 10,000 rows in 0.6 s via AI agent
Pull requests
Show the cost center on project cards
Done, not verified yet:
• Pass the last check with evidence
• Merge or close the open pull request
Export a month of logged hours as CSV
Show the cost center on project cards
Totals off by one day in March
et-12-duplicate-guard
moves to In progressBranch pushed · 3 commits#57 Fixes ET-12: Guard against duplicate bookings
moves to In reviewPull request openedApprovedChecks pass#57 merged into main
moves to DoneLast closing pull requestIn production · 2 hours ago
Vercel · staging yesterdayet-12-duplicate-guard · on in staging
Code links itselfPro
GitHub, GitLab and Bitbucket. Branch pushed, pull request opened, last one merged: the ticket follows, with reviews and checks.
Merged is not live
Deployments and feature flags show where a ticket’s code runs, and which done tickets are not in production yet.
Evidence on every check
Agents must attach the pull request, commit or test run. A person’s tick without evidence says Confirmed, by whom.
Docs that can’t driftBusiness
After a merge, documentation proposals that must quote the diff, checked character by character.
Steer by facts, not by status meetings.
Health colours that people set by hand are optimistic until the week before the deadline. Here they follow from dates, progress, the team’s real pace and the work that waits for other work.
Release 2.4 · 31 open tickets
78% chance to make 27 Nov
Likely
21 Nov
Safe
28 Nov
Almost sure
3 Dec
Pace of the last 12 weeks · 7.4 tickets a weekScope 31
Gone quiet ET-14
In review for 4 days without a change
Waiting for review #57
No approving review for 3 days
Blocked ET-19
In the sprint, waits for open ET-6
Slipping 2.4
Due in 18 days, open work needs 26 at the recent pace
The assignee hears about it once; the lead when it is serious.
Goal · due in 12 days
Self-serve billing live
- 1 ticket waits for unfinished work. They are blocked by tickets that are not done.
- Progress is behind the calendar. 67% of the time is gone and 48% of the work is done.
- 01ProDelivery forecast5,000 runs over the last 12 weeks: Likely, Safe and Almost sure dates, and the chance to make the due date.
- 02ProRisk radarEvery morning: work gone quiet, reviews waiting, failing checks, blocked sprints, slipping releases.
- 03ProPulse and weekly updatesA one-minute standup from the facts, and a stakeholder update every Monday, posted to your channels.
- 04Every planSprint plans and estimatesScope up to the team’s velocity, sizes from similar finished work. Computed, not guessed.
The business of agentic work.
Agents change what work costs, not whether it costs. Their hours, your capacity, budgets and the changes your clients ask for live next to the tickets.
Working live now
3 people tracking · 2 via AI agents
JonasCHK-150Invoice PDF in the customer portal via AI agent1:12
LenaCHK-147Retry failed webhooks via AI agent0:38
MiraCHK-153Brief: annual plans for teams0:21
Logged this week
212 h
By agents
87 h
Billable
164 h
Lena is planned at 120% in W47 and W48. Sam’s tickets need 34 h more than his plan in the next 4 weeks.
- 01Every planAgents on the timesheetAgents run timers over MCP. Their time is booked like anyone’s and marked “via AI agent”.
- 02BusinessCapacityWho works on what, how much of their week, and where estimates outgrow the plan.
- 03BusinessBudgets and cost centersSpent plus planned against every budget, with a pace marker for where you should be today.
- 04BusinessChange requestsQuoted, approved and added to the budget in one step, so faster delivery never means free scope.
Bring your history. And your keys.
Moving shouldn’t mean starting from zero. The import brings tickets with their comments, history, time, attachments and links to code, and the keys in your branches keep linking.
- 1
Connect
A token for Jira, Linear, GitHub, Asana or ClickUp. Nothing is written to the old tool.
- 2
Preview
Counts, how people were matched and how statuses map, all changeable before anything is imported.
- 3
Import
Tickets keep their dates, people, parents and history. Running it again only adds what is new.
Or keep Jira in step while you move
Two-way sync of titles, descriptions, status, people, points and comments. Newer wins, nothing echoes, and teams switch one at a time.
Import from
Links code by
- Jira
LEGACY-2 - Linear
ENG-12 - GitHub Issues
Fixes #12 - Asana
links in notes - ClickUp
OPS-12
What comes with it
- ✓Epics, stories, subtasks
- ✓Comments
- ✓Change history
- ✓Logged work
- ✓Attachments
- ✓Pull requests and commits
CSV and direct imports bring the tickets on every plan. Comments, history, logged work and links to code come along on Pro and above.
Switch from Jira →Ready for the security review. Enforced where it counts.
Permissions live in the database, so the app, the API, MCP agents and Nova all hit the same rules. Not a setting a new feature can forget.
- 01Every planRules in the databaseRow-level security decides every read and write, for people, agents and AI alike.
- 02BusinessTeam-only projectsHidden from everyone else, in lists, search, MCP and AI answers.
- 03BusinessSign-in rulePeople on your verified domains must sign in with Google or Microsoft.
- 04EnterpriseSCIM provisioningOkta and Entra add, deactivate and group people; groups give roles.
- 05BusinessAudit logEvery change with before and after, kept a year. CSV, JSON Lines and a SIEM feed.
- 06Every planPasswords in VaultUtilities passwords are encrypted in Supabase Vault. Agents and Nova never see one.
- 07Every planHosted in FrankfurtDatabase, files and server functions in the EU, with a DPA and a public list of subprocessors.
- 08Every planClosed monthsOnce a month is closed, nobody changes its bookings, from the app, MCP or the API.
No logo wall. Judge us by your numbers.
We are new, and we would rather not borrow trust. Every number below comes from data NEWWORK Projects keeps anyway: readiness on every ticket, evidence on every check, “via AI agent” on every timer.
Example workspace · illustrative numbers
91%
Tickets ready for an agent when work starts
Readiness 100 at the moment of pm-item-start
84%
Done tickets that are verified
Every check passed with evidence, pull requests merged
37
Open questions answered before building
Questions the brief asked instead of guessing, this month
41%
Logged hours worked by agents
Time entries from timers started via MCP
Illustrative. Your workspace keeps the data for all four from day one.
Paste a ticket. See what an agent would see.
Drop in one of your real tickets. The readiness score is computed in your browser by the same rules as the app. Ask for a rewrite to see the brief it could have been.
Scoring runs in your browser. The rewrite sends the text to our server and to OpenAI to write it; we do not store it.
Close: an agent would still guess
- +25
Intent
- +30
Acceptance checks
- +25
No open questions
- +20
Context
To make it ready
- →Add acceptance checks under a heading, one per line
- →Link the context: files, repositories, documents or links