Signing off a PPDB workpackage
Overview
A workpackage is complete when its deliverables exist and its tracker rows agree. Those are two different sources, and they disagree more often than not — the dashboard holds cached values, not live formulas.
REQUIRED: the using-ppdb-mcp skill covers connection and tool selection.
Steps
Get the full picture in one call.
ppdb_get_workpackage(wp="WP2")Returns the objective, sub-tasks, deliverables table, its tracker rows, and the dashboard rollup together — this is the only view that joins them.
Check every deliverable has an artefact. The
livrablestable lists what the WP owes with its échéance. A deliverable with no artefact blocks sign-off regardless of task status.Reconcile the two counts. Compare the WP's tracker rows against
ppdb_get_project_status. If the dashboard says 3 terminées and the rows show 2, trust the rows — the dashboard is a stored value, not a formula.Block on open critical actions.
ppdb_list_tracker_actions(wp="WP2", priorite="Critique")Any 🔴 Critique not
✅ Terminéblocks sign-off.Confirm the approver. Sign-off authority is in the RACI, not the tracker:
ppdb_get_raci(activite="<the WP's main activity>")The A is who approves. R did the work — they are not the same person, and R cannot sign off their own work.
Reading the tracker correctly
Rows whose action starts with → are phase deliverables, not tasks
(is_livrable in json output). A WP whose ordinary tasks are done but whose
→ LIVRABLE row is still open is not complete.
Status vocabulary is fixed: ⬜ À faire, 🔵 En cours, ✅ Terminé, ⛔ Bloqué,
⏸ En pause. Anything else means someone typed over the dropdown.
Common mistakes
Trusting the dashboard alone. It is a cached number. Reconcile against rows.
Counting → LIVRABLE rows as tasks. They are gates.
Ignoring a ⛔ Bloqué row because its task looks minor. Blocked is blocked;
report it and name the blocker from the notes column.
Letting R sign off. Check the RACI for the A.
Declaring a WP done because its échéance passed. Dates are targets, not evidence.
Red flags
- About to report completion without having called
ppdb_get_workpackage - Dashboard and tracker rows disagree and you picked the flattering number
- An open 🔴 Critique action you decided was "not really blocking"
- No named approver from the RACI in your conclusion