|
1 | 1 | --- |
2 | 2 | name: using-tfd |
3 | | -description: Use when the user explicitly requests TFD or a development task may benefit from specialized agents, separated context, independent review, or durable cross-session evidence. |
| 3 | +description: Use when the user requests TFD or a development requirement may benefit from multiple professional responsibilities, separated context, or independent review. |
4 | 4 | --- |
5 | 5 |
|
6 | 6 | # Using TFD |
7 | 7 |
|
8 | | -TFD is selective team orchestration for development work. This is its single |
9 | | -normative user Skill. Its core rule is: use the smallest structure whose |
10 | | -quality, focus, or risk-reduction benefit exceeds its coordination cost. |
| 8 | +TFD forms the minimum useful team for one bounded development requirement. |
| 9 | +Its value is alignment, model-role fit, and context isolation—not durable |
| 10 | +workflow machinery. |
11 | 11 |
|
12 | | -The workflow order is mandatory: |
| 12 | +Follow this order: |
13 | 13 |
|
14 | 14 | ```text |
15 | | -SUITABILITY -> ALIGN -> TEAM -> EXECUTE -> REVIEW -> DELIVER |
| 15 | +SUITABILITY -> PLAN -> SELECT -> EXECUTE -> REVIEW -> DELIVER |
16 | 16 | ``` |
17 | 17 |
|
18 | 18 | ## SUITABILITY |
19 | 19 |
|
20 | | -Decide one route before forming a team or touching TFD state: |
21 | | - |
22 | | -- `SOLO`: ordinary single-Agent work; no `.tfd` creation or write. |
23 | | -- `TFD_SESSION`: the default TFD route; state exists only in this session. |
24 | | -- `TFD_HIGH_ASSURANCE`: an explicitly approved upgrade that may use durable |
25 | | - state through `tfd_state`. |
26 | | - |
27 | | -Choose TFD only when all of these hold: |
28 | | - |
29 | | -1. The Task has at least two non-ceremonial professional responsibilities with |
30 | | - separable outputs or decisions, **or** its risk requires a producer/reviewer |
31 | | - split. |
32 | | -2. Relevant context can be separated by responsibility. |
33 | | -3. The expected quality, focus, or risk-reduction benefit is greater than |
34 | | - coordination and handoff cost. |
35 | | - |
36 | | -If any condition fails, recommend `SOLO` and do not create or write `.tfd`. |
37 | | -An explicit request to "use TFD" requests this decision; it does not predetermine |
38 | | -the answer. If the user still forces TFD, first disclose the coordination cost, |
39 | | -then use the smallest session-scoped team that preserves real responsibility |
40 | | -separation. |
41 | | - |
42 | | -High assurance is justified only by reliable cross-session continuation, |
43 | | -durable decision/handoff/review evidence, multi-day or materially concurrent |
44 | | -work, elevated change risk, or an explicit request for durable local state. |
45 | | -Even then, remain `TFD_SESSION` until the user explicitly approves the named |
46 | | -Task's durable-state upgrade and scope. Existing `.tfd` content, urgency, sunk |
47 | | -cost, or an authority's preference never activates or authorizes durable state. |
48 | | -Do not inspect, create, or update it merely because it exists. |
49 | | - |
50 | | -| Pressure rationalization | Required response | |
51 | | -| --- | --- | |
52 | | -| "TFD was requested, so a full team is mandatory." | Run the gate; unsuitable work remains `SOLO`. | |
53 | | -| "The Workspace already exists, so use it now." | Stay session-only until explicit high-assurance approval. | |
54 | | -| "The deadline or manager makes the normal boundary optional." | Deadlines and titles do not expand authority. | |
55 | | - |
56 | | -These claims are red flags: stop before team formation, state access, or an |
57 | | -external action and return to the applicable decision above. |
58 | | - |
59 | | -## ALIGN |
60 | | - |
61 | | -State one bounded alignment envelope: |
62 | | - |
63 | | -- outcome; |
64 | | -- acceptance conditions; |
65 | | -- allowed scope and actions; |
66 | | -- prohibited scope and actions; |
67 | | -- consequential and external approval boundaries. |
68 | | - |
69 | | -Obtain one kickoff approval for that exact outcome, boundary, acceptance, and |
70 | | -proposed team before team execution. Routine reversible local work inside the |
71 | | -approved boundary needs no repeated transition approval. A kickoff or |
72 | | -high-assurance approval never approves external or high-risk actions. |
73 | | - |
74 | | -Reject secrets, credentials, tokens, private keys, or other secret values. |
75 | | -Never put them in prompts, Task Briefs, handoffs, TFD state, logs, or evidence. |
76 | | -Use sanitized references or a user-performed step instead. Never request full |
77 | | -conversations or hidden reasoning as evidence. |
78 | | - |
79 | | -## TEAM |
80 | | - |
81 | | -Choose the minimum sufficient responsibilities. A Coordinator is an |
82 | | -orchestration function, not a ceremonial role. Add a member only when it owns a |
83 | | -separable output/decision or supplies the required independent risk gate. |
84 | | - |
85 | | -For each member record responsibility, expected output, acceptance condition, |
86 | | -required inputs, handoff recipient, selected callable model, and selection |
87 | | -basis. Select from current-Task evidence and current live host metadata for |
88 | | -callable backends only: |
89 | | - |
90 | | -- do not scan, enumerate, or score the account-wide model catalog; |
91 | | -- do not infer capability or quality from a model name; |
92 | | -- if role-fit evidence is absent, label it `UNVERIFIED`; |
93 | | -- if an exact requested model is unavailable, do not silently substitute it; |
94 | | - use a disclosed callable fallback only when the user did not require the |
95 | | - exact model. |
96 | | - |
97 | | -Model metadata proves callability only. Focus comes from recipient-specific |
98 | | -briefs; logical tool or Skill restrictions do not prove host-level isolation, |
99 | | -invisible capabilities, or operating-system enforcement. |
| 20 | +Choose `SOLO` unless the requirement has either: |
100 | 21 |
|
101 | | -## EXECUTE |
| 22 | +- two or more separable, non-ceremonial professional responsibilities; or |
| 23 | +- enough risk to require a producer and an independent reviewer. |
102 | 24 |
|
103 | | -Issue each member one focused Task Brief in this shape: |
104 | | - |
105 | | -```yaml |
106 | | -outcome: shared result |
107 | | -scope: allowed target and actions |
108 | | -prohibitions: forbidden targets and actions |
109 | | -acceptance: observable checks |
110 | | -role: assigned responsibility |
111 | | -model: current callable model |
112 | | -model_selection_basis: task evidence and live-host metadata |
113 | | -required_inputs: only what this role needs |
114 | | -expected_output: artifact or decision |
115 | | -required_evidence: checks and references |
116 | | -next_handoff: named recipient and exact next action |
117 | | -``` |
| 25 | +The benefit must exceed coordination cost. An explicit TFD request still goes |
| 26 | +through this check. For `SOLO`, do not inspect or write `.tfd` and do not create |
| 27 | +team members. |
118 | 28 |
|
119 | | -Do not forward the full conversation, unrelated project material, another |
120 | | -member's private brief, secrets, credentials, or hidden reasoning. Share only |
121 | | -the outcome plus the context and interfaces needed for the assigned |
122 | | -responsibility. |
| 29 | +Project setup is separate from execution. When asked to configure TFD for a |
| 30 | +project, create only team profiles; do not create Agents. A requirement may |
| 31 | +activate a team later, within its current Codex session. |
123 | 32 |
|
124 | | -Every handoff contains only the completed result, artifact or decision |
125 | | -references, checks performed, unresolved risks, and exact next action. The |
126 | | -Coordinator may integrate bounded outputs but cannot independently review an |
127 | | -output it produced. A blocker returns only the named scope for repair. |
| 33 | +## PLAN |
128 | 34 |
|
129 | | -## REVIEW |
| 35 | +State a lightweight development plan with: |
130 | 36 |
|
131 | | -The reviewer must be a participant distinct from the responsible producer. |
132 | | -Bind review to one immutable, reproducible candidate reference, such as a Git |
133 | | -commit or candidate-manifest digest, plus the relevant acceptance conditions |
134 | | -and evidence. |
| 37 | +- bounded outcome and acceptance conditions; |
| 38 | +- allowed and prohibited scope; |
| 39 | +- separable responsibilities; |
| 40 | +- verification and independent-review needs. |
135 | 41 |
|
136 | | -The reviewer reports `PASS`, `BLOCKER`, or `UNVERIFIED` and cites observed |
137 | | -evidence. A blocker names its repair scope and returns that scope to execution; |
138 | | -it does not open an unlimited loop. Any changed candidate needs a new reference |
139 | | -and a new independent review. Review of a moving target, self-review, or a |
140 | | -verdict without candidate-bound evidence is not acceptance. |
| 42 | +Normal reversible work inside the requested scope needs no extra TFD approval. |
| 43 | +Deployment, publication, push, external messages, destructive changes, paid |
| 44 | +resources, privileges, and scope expansion retain their normal approval gates. |
141 | 45 |
|
142 | | -## DELIVER |
| 46 | +## SELECT |
| 47 | + |
| 48 | +When a team is justified, read project-local configuration in this order: |
143 | 49 |
|
144 | | -Reduce evidence without promotion: |
| 50 | +1. `.tfd/manifest.yaml`; |
| 51 | +2. the listed teams' `team.yaml` files; |
| 52 | +3. only the selected members' files under `members/`. |
145 | 53 |
|
146 | | -- `PASS`: directly observed evidence satisfies the named check. |
147 | | -- `BLOCKER`: a named condition prevents safe completion. |
148 | | -- `UNVERIFIED`: required evidence was not observed. |
| 54 | +The manifest contains only `version: 1` and team directory IDs. Select exactly |
| 55 | +one configured team whose purpose fits the plan, then the minimum member subset |
| 56 | +whose responsibilities cover it. Never combine teams for one requirement. A |
| 57 | +recurring cross-functional composition must be its own configured team. |
149 | 58 |
|
150 | | -Report these claims separately: |
| 59 | +Each team directory contains: |
151 | 60 |
|
152 | 61 | ```text |
153 | | -IMPLEMENTED: artifacts or decisions that exist |
154 | | -VERIFIED: checks actually run and their candidate-bound results |
155 | | -ACCEPTED: named reviewer and user acceptances actually received |
156 | | -UNVERIFIED: runtime, deployment, human, model-fit, or value axes not observed |
157 | | -CONTRIBUTIONS: each member's attributable result |
158 | | -NEXT: exact approval or action still required |
| 62 | +team.yaml |
| 63 | +members/<member-id>.yaml |
| 64 | +receipts/ # optional |
159 | 65 | ``` |
160 | 66 |
|
161 | | -Automated checks cannot promote human, runtime, deployment, or user acceptance. |
162 | | -Do not call `UNVERIFIED` successful delivery. |
| 67 | +`team.yaml` has `name`, `purpose`, `members`, and optional |
| 68 | +`trace: delivery_receipt`. Each member file has exactly these required fields: |
| 69 | + |
| 70 | +- `display_name` |
| 71 | +- `responsibility` |
| 72 | +- `expected_output` |
| 73 | +- `model` |
| 74 | +- `skills` |
| 75 | + |
| 76 | +`agency_role` is optional provenance from a one-time agency-agents reference. |
| 77 | +It is not a runtime dependency, persona sync, installer, or orchestrator. |
| 78 | + |
| 79 | +Before creating any member: |
| 80 | + |
| 81 | +1. require its exact `model` among the choices explicitly exposed by the |
| 82 | + current `spawn_agent` runtime; |
| 83 | +2. require every configured Skill by exact name among locally installed Codex |
| 84 | + Skills; |
| 85 | +3. stop and report the member and missing dependency if either check fails. |
| 86 | + |
| 87 | +Do not scan an account model catalog, cache availability, infer capability from |
| 88 | +a model name, install a Skill, repair a profile, substitute a model, or fall |
| 89 | +back. If exact-model Agent initialization fails, stop and report it. |
| 90 | + |
| 91 | +## EXECUTE |
| 92 | + |
| 93 | +Create only the selected members, with their exact configured models. Give each |
| 94 | +member a focused brief containing: |
| 95 | + |
| 96 | +- shared outcome and acceptance conditions; |
| 97 | +- its configured responsibility and expected output; |
| 98 | +- allowed scope and prohibitions; |
| 99 | +- only the inputs needed for its responsibility; |
| 100 | +- its configured Skills as the required working method; |
| 101 | +- required verification and next handoff. |
| 102 | + |
| 103 | +Do not forward unrelated project context, secrets, credentials, full |
| 104 | +conversations, or hidden reasoning. A Skill list scopes the brief; it does not |
| 105 | +prove the host hides other Skills or provides operating-system isolation. |
| 106 | + |
| 107 | +Handoffs contain only the result or decision, artifact reference, checks, |
| 108 | +unresolved items, and next action. |
| 109 | + |
| 110 | +## REVIEW |
| 111 | + |
| 112 | +Use a reviewer distinct from the producer when the plan requires independent |
| 113 | +review. Bind the review to an immutable candidate reference and its acceptance |
| 114 | +conditions. The verdict is `PASS`, `BLOCKER`, or `UNVERIFIED`, with observed |
| 115 | +evidence. |
| 116 | + |
| 117 | +A blocker returns only its named repair scope. A changed candidate needs a new |
| 118 | +reference and review. Automated checks do not become human, runtime, |
| 119 | +deployment, or user acceptance. |
| 120 | + |
| 121 | +## DELIVER |
| 122 | + |
| 123 | +Report the delivered result, verification, review, member contributions, |
| 124 | +unresolved items, and any real next gate. End the active team with the session; |
| 125 | +do not persist Tasks, progress, events, handoffs, prompts, conversations, or |
| 126 | +recovery state. |
| 127 | + |
| 128 | +If and only if the selected team sets `trace: delivery_receipt`, write one |
| 129 | +short Markdown receipt under `<team>/receipts/` after final delivery. Name it |
| 130 | +`YYYY-MM-DD-<requirement-slug>.md` and include only: |
163 | 131 |
|
164 | | -Deployment, publishing, push, external messaging, deletion, paid resources, |
165 | | -privileged commands, and scope expansion each retain a separate explicit |
166 | | -approval gate. Deadline, manager instruction, kickoff approval, stored actor |
167 | | -ID, or high-assurance activation does not supply that authority. |
| 132 | +- delivered outcome; |
| 133 | +- selected team and members, with one contribution each; |
| 134 | +- result reference; |
| 135 | +- verification and independent-review result; |
| 136 | +- unresolved items. |
168 | 137 |
|
169 | | -TFD user and actor identifiers provide strict attribution inside TFD only. |
170 | | -They are not operating-system authentication. Logical allowlists and focused |
171 | | -briefs are not host isolation. Never claim OS-authenticated identity, host-level |
172 | | -Skill/tool isolation, or model quality without direct runtime evidence; keep |
173 | | -those axes `UNVERIFIED`. |
| 138 | +The receipt is a human-readable trace, not authority or resumable state. Do not |
| 139 | +write process logs, prompts, reasoning, intermediate handoffs, progress, |
| 140 | +events, token/timing data, raw outputs, diffs, an index, or management scripts. |
0 commit comments