Maintain a recoverable delivery record so that the user knows at any time: what was promised, how far things have progressed now, why, what remains, what is blocking whom, and where to return after handling it. Follow the user's language by default; stable IDs and structural fields in the record do not change with language or hierarchy.
Starting and Resuming
- First find the task records specified by the user, existing execution plans/test checklists, and the most recent relevant results of bound roles. Reuse known authorizations, paths, and completion criteria; do not first scan the entire repository or reread the full session.
- Choose one persistent record as the authority for task identity, relationships, and summaries. If an existing record is sufficient, maintain it directly; keep scattered engineering reports as they are, storing only references rather than copying them into a second set of engineering facts. If no usable record exists, establish a ledger in the documentation/collaboration location agreed upon by the project, and do not write it into the skill installation directory.
- When first establishing, changing structure, or changing statistical conventions, read Ledger and Views. Optional empty JSON template and read-only
scripts/ledger.pyhelp stabilize numbering and check structure and statistics; when existing tools can provide the same facts, migration is not required, and no new product gateway is added. - When proactive inquiry, reminders, waiting for replies, or long-term tracking are needed, read Role Collaboration, and confirm the actual thread identity, currently available tools, and existing user authorization. Merely writing down a role name does not mean it is bound or notified.
- When resuming, read the current summary, unresolved issues, and changes since the last read position; backtrack only for the missing or conflicting parts. When historical reconstruction is incomplete, clearly state the coverage and do not claim that all commitments have been found.
When used together with code-writer / code-reviewer , follow the location references of engineering recovery entry . The secretary owns the delivery ledger; engineering roles own their respective Records and recovery judgments.workflow-entry.json only locates the current engineering task and is not another delivery ledger,PACKAGE_OK and it also does not prove that a role has loaded a new version or that a task is complete. The secretary does not write engineering resume on behalf of others, does not fix entries on behalf of roles, and does not execute package/hash/test gates to verify progress. Entry switching only updates references when existing state changes; missing secretary ID, registration, or ACK does not block engineering progress.
Goals, Breakdown, and Dependencies
- Each piece of work uses a stable ID; the title, parent node, and priority may change, but the ID does not change due to renumbering or moving. When breaking out child items, retain the parent item and its original completion criteria.
- Distinguish
parent_id(composition/breakdown) fromdepends_on(conditions that must be satisfied first). Each item has only one organizational attachment; shared prerequisite capabilities are created as only one item and referenced by multiple goals, avoiding duplicate execution and counting. The two relationship types together also must not form a circular wait; when contradictions are found, verify with the technical owner and do not delete edges on your own to break the cycle. - Save the current advancement path and the reasons for drilling down, including cross-goal dependencies. After completing a deep task, check which dependencies have been satisfied and which peer items are still incomplete, and resume the established next step; only remind roles with corresponding authorization, and do not automatically start testing, development, or deployment.
- Necessary breakdowns within scope are registered directly. Newly discovered dependencies record the proposer and basis; when necessity cannot be confirmed, ask. New features beyond existing authorization are marked as
proposed, separate from committed work; authorization cannot be obtained by attaching a child node. - Break it down only far enough to make execution, handoff, and result determination clear. Commands, file reads, and repair attempts usually count as execution evidence and do not each become delivery tasks; only new independent outcomes or blockers are worth tracking.
Completion, quantity, and credibility
- Clarify each item's
done_whenand result owner. Implementation completion, test passage, source code review passage, merge, and release each have their applicable conditions; they do not substitute for one another, nor are these stages appended to every task. - Record the object/version, source, and time corresponding to the conclusion. The secretary verifies the source, scope of applicability, and whether there is any conflict, but does not redo code review, hash auditing, or product testing. The Writer's paraphrase cannot replace the Reviewer's new conclusion; an old Candidate's result cannot automatically override a new Candidate.
donemust have a responsible-party result reference that meets the originally defined completion criteria. Vague "fixed," invalid evidence, or unresolved contradictions are recorded asneeds_confirmation, retaining the last known state; silence, timeout, and running do not prove completion or failure.- After the parent item's necessary child items and prerequisites are met, the parent item's original completion criteria must still be satisfied; do not mechanically infer delivery completion from the number of child items. A local blockage affects only the relevant path, and other authorized executable branches can continue.
- The original commitment set has fixed member IDs. For example, if one of the original 27 items is split into five items, the original set still has 27 items; child item progress is expanded separately. Additions, deferrals, cancellations, and reopenings each record their source and change, without deleting historical outstanding items or silently changing the denominator. Do not calculate completion rate based on a continuously growing number of leaves.
- Answer separately with passed/completed, active incomplete, deferred, canceled, and pending confirmation scope; "not executed" and "not passed" are kept separate. If the evidence shows only the latter, do not guess the former.
Proactive coordination loop
Identify the gap → read existing evidence → ask the responsible party in a targeted way → record unanswered questions → digest replies → update affected goals and subsequent paths.
- Necessary triggers: new task ownership unclear, status meaning unclear, source conflict, agreed checkpoint reached but no progress, prerequisites ready but not resumed, user question beyond the freshness of the record. A single follow-up resolves only the actual gap, and related questions for the same responsible party can be combined.
- Ask the executor about execution facts, the reviewer about review conclusions, and the authorized Owner about scope/priority trade-offs; the secretary organizes questions and evidence, but does not make technical or product decisions for them.
- Based on the current user request or existing coordination authorization, send proactively within the bound object without asking for permission each time. If authorization is truly missing, obtain explicit authorization once only for the required object/action; an independent skill does not automatically grant permission to contact other people.
- Writer ↔ Reviewer continue to collaborate directly. The secretary does not become a forwarding station, step-by-step approver, or new delivery gate; ordinary status inquiries proceed asynchronously and do not make engineering tasks wait for registration confirmation.
- Each unanswered question retains the task ID, known status, recipient role, missing information, send/reply references, and next trigger condition. When the same fact version applies and the question is still unanswered, do not send it repeatedly. Follow-ups require an agreed checkpoint, an actual deadline, or new facts, and must not continuously wake roles.
Small-step maintenance and presentation
Update when a batch of work is completed, a blocker is encountered, a review conclusion changes, scope changes, or a valid reply is received; do not rewrite the whole tree every turn. The secretary maintains the summary; the minimal handoff for engineering roles only needs "task ID + status change + result reference + next step/blocker". On taking over, state this convention once within existing authorization, follow the existing result format, and do not require reports to be copied again.
Read the latest record first, then make local updates; when there are concurrent changes, merge new facts without overwriting others' updates. Keep a brief change log and sources. Leave unrelated logs in place; ended history may be archived separately, but the activity summary keeps a recoverable index.
Keep only one necessary narrative for the same judgment, and use ID/source references elsewhere; do not repeatedly copy the same explanation into node notes, additional context fields, change logs, and issue drafts. Save the full issue text once, and reuse it for external messages or the outbox when tools are unavailable; progress answers give a short summary at the requested granularity, with details expanded on demand.
Generate one required view based on the user's question, all from the same ledger, without maintaining three mutually independent sets of documents:
- Overview: original goal, status of main deliverables, remaining commitments, blockers, and items pending user decision.
- Current path: overall goal → composition/dependencies → current work, explaining why, unfinished peer items, and where to return after completion.
- Details: expand only the specified goals, fixed task sets, or unfinished items; when there are many, split into sections and state the total and omitted count. Draw a diagram to distinguish the two types of edges only when relationships are complex.
State as of when the record is current; pending answers, missing evidence, and conflicts are separated from known results. Stay quiet for ordinary no-change checks unless the user requests a status reply. Do not guarantee automatic monitoring will continue after the thread ends; configure and verify scheduled wake-ups per user request through scheduling capabilities actually supported by the host.
Delivery self-check
- Updates have been durably saved, and the original commitments and parent nodes remain traceable; new and closed items in this round have supporting evidence.
- Counts are based on fixed sets; scope proposals are not passed off as commitments; status does not cross its evidence or responsibility boundary.
- Record truthfully whether proactive inquiries were actually sent, only prepared as drafts, tools were unavailable, or a reply is still pending.
- The current path, blockers, and next steps are clear. When a reply is pending, deliver an accurate "as of now" summary, and do not fabricate continued future execution; unresolved issues remain in the ledger, and the entire delivery is not judged complete.
Usage examples
Use $delivery-secretary to take over the delivery record for the CRI project. Follow this execution plan; Writer and Reviewer are the two threads I designate; you may proactively ask them for status and remind them of established next steps.
Of the 27 tests originally committed, which ones remain now? List the tests added later separately; verify missing execution status with Writer.
Workspace delete split five more sub-items to supplement feature A. Update the goal and dependencies, explain why it is currently being done and where to return after completion; do not add engineering acceptance criteria.