nobrainer-tech-flow 0.0.0-stage → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +18 -0
  3. package/.claude-plugin/plugin.json +21 -0
  4. package/.codex-plugin/plugin.json +47 -0
  5. package/.opencode/INSTALL.md +37 -0
  6. package/.opencode/plugins/nobrainer-tech-skills.js +66 -0
  7. package/.pi/extensions/nobrainer-tech-skills.js +64 -0
  8. package/AGENTS.md +204 -0
  9. package/CLAUDE.md +204 -0
  10. package/CONTRIBUTING.md +70 -0
  11. package/GEMINI.md +1 -0
  12. package/LICENSE +21 -0
  13. package/README.md +658 -2
  14. package/SECURITY.md +33 -0
  15. package/adapters/bootstrap.md +27 -0
  16. package/assets/nobrainer-tech-logo.svg +1 -0
  17. package/assets/nobrainer-workflow.svg +155 -0
  18. package/assets/plugin-logo.png +0 -0
  19. package/bin/nobrainer-tech-flow.mjs +48 -0
  20. package/docs/BOUNDED_RUNNER.md +60 -0
  21. package/docs/CHAT_PLUGINS.md +29 -0
  22. package/docs/COMPATIBILITY.md +371 -0
  23. package/docs/INSTALL.md +626 -0
  24. package/docs/MIGRATION_TO_FLOW.md +117 -0
  25. package/docs/NAMING.md +39 -0
  26. package/docs/PRIVACY.md +9 -0
  27. package/docs/SESSION_RESTART.md +70 -0
  28. package/docs/SKILL_CURATION.md +124 -0
  29. package/docs/TESTING.md +232 -0
  30. package/docs/TRY_IT.md +109 -0
  31. package/docs/releases/v1.0.0.md +81 -0
  32. package/docs/releases/v1.1.0.md +85 -0
  33. package/docs/releases/v1.10.0.md +34 -0
  34. package/docs/releases/v1.11.0-publication-readback.md +25 -0
  35. package/docs/releases/v1.11.0.md +42 -0
  36. package/docs/releases/v1.12.0.md +30 -0
  37. package/docs/releases/v1.13.0.md +46 -0
  38. package/docs/releases/v1.14.0.md +43 -0
  39. package/docs/releases/v1.14.1.md +21 -0
  40. package/docs/releases/v1.2.0.md +87 -0
  41. package/docs/releases/v1.2.1.md +92 -0
  42. package/docs/releases/v1.3.0-publication-readback.md +69 -0
  43. package/docs/releases/v1.3.0.md +66 -0
  44. package/docs/releases/v1.3.1-publication-readback.md +76 -0
  45. package/docs/releases/v1.3.1.md +59 -0
  46. package/docs/releases/v1.4.0-publication-readback.md +81 -0
  47. package/docs/releases/v1.4.0.md +43 -0
  48. package/docs/releases/v1.5.0-publication-readback.md +76 -0
  49. package/docs/releases/v1.5.0.md +54 -0
  50. package/docs/releases/v1.6.0.md +64 -0
  51. package/docs/releases/v1.6.1-publication-readback.md +53 -0
  52. package/docs/releases/v1.6.1.md +82 -0
  53. package/docs/releases/v1.7.0.md +42 -0
  54. package/docs/releases/v1.7.1-publication-readback.md +64 -0
  55. package/docs/releases/v1.7.1.md +49 -0
  56. package/docs/releases/v1.8.0.md +63 -0
  57. package/docs/releases/v1.8.1.md +32 -0
  58. package/docs/releases/v1.9.0.md +33 -0
  59. package/docs/releases/v2.0.0-candidate.md +28 -0
  60. package/docs/releases/v2.0.0.md +53 -0
  61. package/docs/releases/v2.0.1.md +135 -0
  62. package/docs/releases/v2.0.2.md +189 -0
  63. package/docs/releases/v2.1.0.md +64 -0
  64. package/docs/releases/v2.1.1.md +43 -0
  65. package/docs/releases/v2.2.0.md +64 -0
  66. package/docs/releases/v2.2.1.md +11 -0
  67. package/docs/releases/v2.3.0.md +97 -0
  68. package/docs/releases/v2.3.1.md +71 -0
  69. package/docs/releases/v2.3.2.md +242 -0
  70. package/docs/releases/v2.4.0.md +126 -0
  71. package/gemini-extension.json +6 -0
  72. package/hooks/claude-hooks.json +17 -0
  73. package/hooks/hooks-cursor.json +10 -0
  74. package/hooks/run-hook.cmd +36 -0
  75. package/hooks/session-start +38 -0
  76. package/package.json +69 -4
  77. package/plugin.json +51 -0
  78. package/scripts/build_plugin.py +50 -0
  79. package/scripts/check_flow_update.py +18 -0
  80. package/scripts/check_public_commit.py +86 -0
  81. package/scripts/fetch_public_refs.py +69 -0
  82. package/scripts/install.py +600 -0
  83. package/scripts/install.sh +1392 -0
  84. package/scripts/install_guards.py +279 -0
  85. package/scripts/install_personalization.py +527 -0
  86. package/scripts/install_skills.py +951 -0
  87. package/scripts/npm_install.py +85 -0
  88. package/scripts/recommend_flow_setup.py +1522 -0
  89. package/scripts/validate_skills.py +465 -0
  90. package/skills/nobrainer-auto-fine-tune/SKILL.md +79 -0
  91. package/skills/nobrainer-auto-fine-tune/references/capacity-audit.md +49 -0
  92. package/skills/nobrainer-autoimprove/SKILL.md +212 -0
  93. package/skills/nobrainer-autoimprove/scripts/count_words.py +22 -0
  94. package/skills/nobrainer-browser/SKILL.md +234 -0
  95. package/skills/nobrainer-browser/references/cdp-profile-restart.md +93 -0
  96. package/skills/nobrainer-build/SKILL.md +173 -0
  97. package/skills/nobrainer-codex-context/SKILL.md +111 -0
  98. package/skills/nobrainer-codex-context/scripts/codex_context.py +175 -0
  99. package/skills/nobrainer-decide/SKILL.md +198 -0
  100. package/skills/nobrainer-dispatcher/SKILL.md +256 -0
  101. package/skills/nobrainer-dispatcher/agents/openai.yaml +4 -0
  102. package/skills/nobrainer-rca/SKILL.md +163 -0
  103. package/skills/nobrainer-research/SKILL.md +131 -0
  104. package/skills/nobrainer-review/SKILL.md +195 -0
  105. package/skills/nobrainer-security/SKILL.md +166 -0
  106. package/skills/nobrainer-sessions/SKILL.md +223 -0
  107. package/skills/nobrainer-sessions/references/evidence-receipt.md +55 -0
  108. package/skills/nobrainer-sessions/references/protocol.md +337 -0
  109. package/skills/nobrainer-sessions/references/session-restart.md +255 -0
  110. package/skills/nobrainer-sessions/scripts/evidence_receipt.py +373 -0
  111. package/skills/nobrainer-sessions/scripts/restart_gate.py +140 -0
  112. package/skills/nobrainer-sessions/scripts/run_bounded.py +390 -0
  113. package/skills/nobrainer-sessions/scripts/session_title.py +43 -0
  114. package/skills/nobrainer-skill-doctor/SKILL.md +149 -0
  115. package/skills/nobrainer-skill-doctor/references/astra.md +19 -0
  116. package/skills/nobrainer-skill-doctor/scripts/audit.py +100 -0
  117. package/skills/nobrainer-skill-doctor/scripts/context_candidates.py +133 -0
  118. package/skills/nobrainer-spec-driven-development/SKILL.md +132 -0
  119. package/skills/nobrainer-spec-driven-development/references/spec-template.md +114 -0
  120. package/skills/nobrainer-team/SKILL.md +165 -0
  121. package/skills/nobrainer-team/references/team-plan.md +64 -0
  122. package/skills/nobrainer-tech-flow/SKILL.md +239 -0
  123. package/skills/nobrainer-tech-flow/VERSION +1 -0
  124. package/skills/nobrainer-tech-flow/references/autopilot.md +72 -0
  125. package/skills/nobrainer-tech-flow/references/codex-routing.md +21 -0
  126. package/skills/nobrainer-tech-flow/references/communication.md +108 -0
  127. package/skills/nobrainer-tech-flow/references/correction-hooks.md +110 -0
  128. package/skills/nobrainer-tech-flow/references/daily-update.md +28 -0
  129. package/skills/nobrainer-tech-flow/references/delivery.md +243 -0
  130. package/skills/nobrainer-tech-flow/references/idea-to-delivery.md +82 -0
  131. package/skills/nobrainer-tech-flow/references/long-run-state.md +209 -0
  132. package/skills/nobrainer-tech-flow/references/model-routing.md +83 -0
  133. package/skills/nobrainer-tech-flow/references/optional-decisions.md +83 -0
  134. package/skills/nobrainer-tech-flow/references/project-start.md +22 -0
  135. package/skills/nobrainer-tech-flow/references/routing.md +125 -0
  136. package/skills/nobrainer-tech-flow/references/setup.md +180 -0
  137. package/skills/nobrainer-tech-flow/references/worktrees.md +138 -0
  138. package/skills/nobrainer-tech-flow/scripts/check_flow_update.py +298 -0
  139. package/skills/nobrainer-tech-flow/scripts/cleanup_worktree.py +327 -0
  140. package/skills/nobrainer-tech-flow/scripts/decision_config.py +107 -0
  141. package/skills/nobrainer-tech-flow/scripts/flow_guard.py +252 -0
  142. package/skills/nobrainer-tech-flow/scripts/typed_decisions.py +210 -0
  143. package/skills/nobrainer-wiki/SKILL.md +164 -0
  144. package/skills/nobrainer-wiki/references/setup.md +88 -0
  145. package/skills/nobrainer-writing/SKILL.md +272 -0
  146. package/skills/nobrainer-writing/agents/openai.yaml +4 -0
  147. package/skills/nobrainer-writing/references/brief-artifacts.md +357 -0
  148. package/skills/nobrainer-writing/references/plain-technical-english.md +76 -0
  149. package/skills/nobrainer-writing/references/research.md +86 -0
@@ -0,0 +1,243 @@
1
+ # Deliver the agreed outcome
2
+
3
+ Read for non-trivial delivery and before reporting a blocker. Ordinary autopilot
4
+ uses this contract. `yolo` or `yolo mode`, when explicitly requested for this
5
+ workflow, is an alias for persistent execution of authorized work. It changes
6
+ neither permissions, model, budget nor the host's safety controls. It is not a
7
+ CLI flag or another skill.
8
+
9
+ ## Establish the goal without another prompt
10
+
11
+ For substantial implementation, automatically derive an observable outcome and
12
+ DoD from the owner's request before editing. Reuse the existing tracker; if work
13
+ needs durable state, write a short task-local Markdown goal. Keep only acceptance,
14
+ current progress, authority and the next useful step. Do not ask the owner to
15
+ name the file or restate an already clear goal. Small answers need no artifact.
16
+
17
+ Prefer a current short-term goal linked to the owner's long-term direction or
18
+ maintained roadmap. Partition accepted outcomes into visible milestones, keep
19
+ the whole goal open while a required item remains, and choose the next ready
20
+ unit as each stage closes. Do not invent an LDD method when the acronym or
21
+ source is unresolved.
22
+
23
+ A native goal is separate: create it only when explicitly requested and supported
24
+ under the host tool contract. Reuse an existing goal; never replace an unfinished
25
+ goal or invent a token budget. Read back native goal creation before claiming it.
26
+ A Markdown goal does not promise scheduled continuation or automatically press
27
+ START. When START is owner-only, explain that requirement once; never claim it
28
+ was resumed. Within available execution time, continue useful authorized work.
29
+
30
+ When the owner requests an end-to-end result, including an idea that becomes
31
+ an SDD, bind one overarching goal to all of that SDD's acceptance IDs. An explicit
32
+ "execute the whole SDD" request has the same effect. Do not substitute a local milestone, plan approval,
33
+ or test suite for the whole outcome. Automatically maintain a visible TODO:
34
+ `[x] accepted with evidence`, `[>] executing`, `[ ] remaining`, `[!] blocked`.
35
+ After each accepted stage, update the canonical tracker, show the changed TODO
36
+ items and move to the next ready stage without requesting "continue". Keep
37
+ blocked IDs open while independent stages advance. Use short stage labels; link
38
+ long evidence. No phase silently disappears from the full-scope acceptance set.
39
+
40
+ A request to set a goal or execute the whole SDD with a goal authorizes native
41
+ goal creation when the host permits it. If the host requires an explicit native
42
+ goal request and the wording does not meet that requirement, maintain the
43
+ Markdown goal and ask once in BUDDY if native continuation is wanted. Never imply
44
+ that a Markdown file activated host scheduling. Update the file after each stage;
45
+ use native updates only for operations the actual tool supports. A host that only
46
+ supports complete/blocked must not receive invented native progress updates.
47
+
48
+ Carry authority across turns. Translate "go ahead" against the immediately
49
+ proposed concrete action and preserve its target and exclusions. Do not ask for
50
+ permission again for that action. New consequences outside that scope still need
51
+ approval. A worker's completion is one milestone, not completion of the goal.
52
+
53
+ ## BUDDY: collect the permission package once
54
+
55
+ After initial read-only discovery, identify the concrete actions needed to finish
56
+ the whole scope. Classify each as already authorized, routine/reversible within
57
+ scope, or requiring a missing owner decision. Resolve routine implementation
58
+ choices yourself. Ask one bundled, plain-language question only for missing
59
+ consequential permissions. Name exact projects/targets and effects: for example
60
+ merge these changes, deploy this service, or create this paid resource within a
61
+ specified ceiling. Include browser actions when they carry those effects; merely
62
+ opening a page is not a separate permission category.
63
+
64
+ Record the answer and any exclusions in the existing tracker. Do not seek a blank
65
+ check to spend, message people, delete data or bypass controls. Unforeseen new
66
+ consequences still need consent. Preserve refusals and ceilings across stages.
67
+ If a late gate is unavoidable, finish its preparation first and continue any
68
+ independent work while the question is pending.
69
+
70
+ ## Short work communication
71
+
72
+ Use terse, natural progress text: result, TODO delta, next action. Avoid repeated
73
+ skill announcements, schema dumps and unchanged polling narration. Do not enforce
74
+ a word count that loses conditions, errors, commands or required human actions.
75
+ Keep authored documents and product copy complete and natural.
76
+
77
+ For a true owner blocker, say: `Blocked: <acceptance item>. Tried: <method/result>.
78
+ You: <exact action and destination>. Then: <how work can resume>.` Include an
79
+ exact link or copy-ready command when verified. Do not ask the owner to invent
80
+ the next diagnostic step. A paused native goal with an owner-only START requires
81
+ an explicit START callout, not a claim of automatic resumption.
82
+
83
+ ## Resolve an obstacle before escalating it
84
+
85
+ Separate authority from capability: a permitted action may lack a tool, and an
86
+ available tool may not authorize an action. Before saying BLOCKED, identify the
87
+ exact failed operation and the acceptance item it prevents. Then:
88
+
89
+ 1. Check related instructions and current evidence, including prior permission.
90
+ 2. Discover the relevant supported API, CLI or browser capability. An authenticated
91
+ UI step is agent work when its action and target are already authorized. Inspect
92
+ the UI, perform the step and read back the result rather than asking the owner
93
+ to click merely because it is in a browser.
94
+ 3. If the preferred method is technically unavailable, try a relevant permitted
95
+ alternative within the same scope. Never evade an access denial, approval
96
+ rejection, sandbox or an explicit channel restriction through another method.
97
+ 4. A missing credential means inspect the documented credential location or normal
98
+ login flow without exposing secrets. Human MFA, unavailable entitlement and
99
+ an owner-only decision remain genuine blockers for dependent work.
100
+ 5. Continue independent acceptance items. One blocked integration cannot turn
101
+ an entire backlog into BLOCKED or justify unrelated speculative work.
102
+
103
+ A failed test is a repair task. Missing evidence is a verification task when the
104
+ agent can obtain it. A missing optional helper is a MAIN fallback. Poll timeouts
105
+ are observations; preserve the same handle and use bounded waits. A terminal
106
+ worker failure requires reconciling writes before MAIN takes over. Do not use a
107
+ terminal failure to justify accepting unreviewed output.
108
+
109
+ When no permitted path remains, report only: the blocked acceptance item, attempted
110
+ method and observed error, why relevant alternatives cannot complete it, the exact
111
+ missing human action/access, and what independent work was completed. Distinguish
112
+ OWNER_ACTION, EXTERNAL_UNAVAILABLE, POLICY_DENIED and TECHNICAL_FAILURE. Apply
113
+ native goal blocked-state rules separately; do not mark a whole goal blocked while
114
+ useful authorized work remains. Never turn an unknown right/license into consent.
115
+
116
+ ## Keep review proportional to progress
117
+
118
+ Review the next executable slice against concrete acceptance and failure paths.
119
+ For a stable slice, default to one review and one focused correction verification.
120
+ More review needs a newly evidenced material defect or changed risk, not a new
121
+ amendment number, stylistic preference or desire for perfect prose. Preserve
122
+ required independent/security gates; a review budget never makes a failed gate pass.
123
+
124
+ After repeated review without accepted progress, stop the whole-plan loop. Deduplicate
125
+ findings, retain blockers for the affected slice, defer non-blocking suggestions,
126
+ and implement an already-authorized independent slice or resolve the concrete
127
+ blocking defect in MAIN. Escalate only an actual unresolved owner choice. Do not
128
+ reset the review budget by renaming a plan or opening a new reviewer task.
129
+
130
+ Prefer maintainable code over line-count games. Honor real project limits by
131
+ cohesive decomposition; do not invent arbitrary caps or spend worker cycles on
132
+ blank-line shaving. Re-run only checks affected by the final change plus required
133
+ repository checks. Finish after acceptance, not after an arbitrary quantity of
134
+ reviews, tests or generated files.
135
+
136
+ ## Coordinated team execution
137
+
138
+ MAIN owns the full outcome, coordination, critical path, dependencies, integration,
139
+ owner decisions and acceptance. Before executing non-trivial work or entering a
140
+ blocking wait, identify independent ready units and dispatch every useful eligible
141
+ unit promptly to native workers within verified host capacity and authorized usage
142
+ limits. Eligibility requires accepted dependencies, authority, a supported route
143
+ and a free write scope. One visible MAIN coordinator is compatible with many native
144
+ workers. Before a large or risky multi-writer fan-out that is not already
145
+ executable, run the [builder-readiness check](idea-to-delivery.md#builder-readiness-check);
146
+ skip it for already-executable plans and mechanical changes.
147
+
148
+ When an eligible ready unit stays in MAIN while a useful slot is free, record the
149
+ concrete reason in the current plan: shared mutable state, missing accepted
150
+ dependency, unavailable capability/route, authority gate, usage limit, or a tiny or
151
+ tightly coupled step. A missing measured speedup is not by itself a reason to keep
152
+ eligible work in MAIN.
153
+
154
+ A single bounded native delegate needs no Dispatcher queue; MAIN keeps coordination
155
+ and acceptance. Use the [small native-worker packet](communication.md#small-native-worker-packet).
156
+ Durable queues retain the [long-run state](long-run-state.md) and full
157
+ Sessions/Dispatcher contract. Visible conversations follow the
158
+ [canonical rule](../SKILL.md#choose-the-smallest-workflow); never substitute
159
+ them for unavailable native workers.
160
+
161
+ Target concurrency is the minimum of the effective host/model limit, authorized
162
+ usage limits and useful independent ready units. A configured ceiling is not proof
163
+ of available runtime slots. Count running reviewers, existing live workers and any
164
+ permitted descendants too. If capacity is unknown, dispatch ready units
165
+ incrementally within host policy and remaining quota until a capacity refusal;
166
+ never spawn dummy probes. Reconcile uncertain spawn results by ID before retrying.
167
+ If a send may have succeeded but returned no ID,
168
+ reserve its possible capacity and write scope; do not retry or run that unit in
169
+ MAIN until the host proves no worker is executing. Record delivery UNKNOWN in
170
+ the existing tracker. This differs from proven pre-send unavailability, which
171
+ permits MAIN fallback. A refusal reduces concurrency; it is not a goal
172
+ blocker. Do not duplicate a unit after an uncertain send or timeout. Never bypass
173
+ a host restriction.
174
+
175
+ Use [communication](communication.md) for assignments and reports: plain
176
+ technical English between agents by default, with the artifact language explicit
177
+ when different. Preserve required formats and explicit language overrides.
178
+
179
+ Each assignment names one bounded outcome, exact inputs/version, write scope,
180
+ dependencies, owning method, authority, acceptance evidence, model/effort, budget
181
+ and stop conditions. Schedule independent implementation, research and verification
182
+ together only when mutable state does not overlap. Keep one owner for every shared
183
+ mutable resource: files, browser/profile, test database, port, migration, generated
184
+ artifact and integration surface. Use isolated worktrees where appropriate, then
185
+ integrate explicitly. No duplicate investigations of the same question; read-only
186
+ reviews may share frozen input when their questions are distinct.
187
+
188
+ Use flat MAIN-owned delegation by default. Recursive delegation requires express
189
+ assignment authority and a reserved capacity slot under the same verified host
190
+ capacity. A host or owner prohibition remains controlling. Without reliable
191
+ cross-tree accounting, keep delegation flat. Apply the [model policy](model-routing.md),
192
+ including its Codex delegated preset; preserve explicit owner overrides.
193
+
194
+ Prioritize work that unblocks downstream stages. MAIN advances useful integration
195
+ or unresolved dependencies while workers execute. Queue excess ready units. On each
196
+ worker completion, MAIN reconciles the exact returned ID, inspects the current
197
+ artifact, assigned scope and required proof, and verifies that the worker has
198
+ stopped writing. Then release only that unit's proven ownership, recompute readiness
199
+ and dispatch newly ready work without waiting for unrelated slow workers. A
200
+ worker's report, exit code or self-score does not accept its artifact.
201
+
202
+ A waiting, suspended or uncertain worker has a stated reason and a bounded next
203
+ observation in the current tracker. Reserve its scope and possible capacity until
204
+ exact-ID readback reconciles its state. Prefer native completion notifications or
205
+ bounded waits on the same IDs; wait only when no useful independent work remains
206
+ for MAIN or available slots. Do not poll unchanged status as a substitute for work.
207
+
208
+ Keep quota/cost ceilings, API/test-environment limits, runtime health warnings/hard
209
+ limits, credential boundaries, owner gates and refusal handling. Shared sequential
210
+ work remains serial. No filler units, speculative future work, fixed swarm or
211
+ duplicated full-context prompts. Do not split a tiny task merely to reach a number.
212
+ Measure progress by accepted outcomes and elapsed delivery, never by agent count
213
+ or messages sent. Claims about speed, token use or quality require measured
214
+ evidence; dispatch alone proves none of them.
215
+
216
+ ## GDD: goal-driven delivery through milestones
217
+
218
+ The [approved-plan autopilot loop](autopilot.md) owns select, execute, check,
219
+ review, correct and advance. This section owns the milestone map and its state
220
+ transitions; use both without creating a second tracker.
221
+
222
+ GDD is this workflow's execution pattern, not a new skill or a claim of inventing
223
+ Goal-Driven Development. SDD owns requirements; the existing task tracker owns
224
+ milestones and current state. For whole-SDD execution, derive milestones from its
225
+ acceptance set. Each milestone records an ID, observable outcome, acceptance IDs,
226
+ dependencies, owner, write scope, evidence and state. Every required acceptance ID
227
+ must be assigned; cross-cutting criteria need a final integrated check.
228
+
229
+ Use `PENDING -> READY -> RUNNING -> VERIFYING -> ACCEPTED`. `READY` requires
230
+ accepted dependencies, necessary permission and a free write scope. A failed
231
+ verification returns to repair; an external dependency marks only the affected
232
+ milestone `BLOCKED` with its evidence and unblock action. Resume after fresh
233
+ verification of that action. Superseded requirements invalidate only affected
234
+ milestones and downstream evidence. Completed workers never self-accept.
235
+
236
+ After each milestone, MAIN verifies evidence, updates the existing TODO and
237
+ selects the next ready work without waiting for a new user prompt. Independent
238
+ milestones may run together up to the target concurrency in
239
+ [coordinated team execution](#coordinated-team-execution). Keep one overarching goal open
240
+ until every required milestone and integrated DoD passes. Do not complete and
241
+ replace the native goal for each milestone. Native goals are optional mirrors;
242
+ Markdown remains the portable record. Host pauses or quotas can suspend execution,
243
+ so preserve the next action without promising an automatic wakeup.
@@ -0,0 +1,82 @@
1
+ # From an idea to a checked result
2
+
3
+ Use when the owner supplies a goal or idea without an implementation plan.
4
+ An idea is enough to begin discovery. It is not approval for every possible
5
+ product choice or external effect.
6
+
7
+ ## Make the idea executable
8
+
9
+ 1. Read the existing project and relevant decisions. State the desired result,
10
+ audience and smallest useful scope. Separate supplied facts (`OBSERVED`),
11
+ reasonable assumptions (`INFERRED`), proposed choices (`RECOMMENDED`) and
12
+ unresolved facts (`UNKNOWN`). Do not present your defaults as owner decisions.
13
+ 2. Choose routine, reversible implementation details within the request.
14
+ Explain consequential assumptions. Ask one focused round only for missing
15
+ choices that change the product, acceptance, risk or authority; continue
16
+ independent work while that decision is pending.
17
+ 3. Use the [spec template](../../nobrainer-spec-driven-development/references/spec-template.md) when SDD is requested or its
18
+ maintenance is justified. Otherwise use Flow's compact scope and plan.
19
+ If a selected install lacks SDD, report that limit and use the documented
20
+ installation path within authorization; do not claim the skill ran.
21
+ Map each requirement to a sequential acceptance ID (`AC01`, `AC02`, …),
22
+ an observable check and the delivery layer that check establishes.
23
+ 4. Review the contract before implementation. Record the existing owner
24
+ instruction as approval when it already covers the defined scope; do not
25
+ manufacture approval for an unresolved product/risk choice. Freeze the
26
+ reviewed revision using the project's hash convention.
27
+ 5. For an end-to-end request, start the [autopilot loop](autopilot.md)
28
+ with those acceptance IDs. Planning and a generated spec are milestones.
29
+ Execute, verify, review where required, correct confirmed defects, and
30
+ continue to the requested delivery layer within existing authorization.
31
+
32
+ ## Builder-readiness check
33
+
34
+ Before a large or risky multi-writer fan-out, assign one bounded read-only pass to
35
+ a native builder. Use MAIN when native workers are unavailable and disclose that
36
+ limit. Ask what would stop the first assigned unit from being implemented:
37
+
38
+ - a missing interface or caller;
39
+ - an unavailable tool;
40
+ - a conflicting scope or shared resource;
41
+ - an unresolved product decision;
42
+ - impossible proof for an acceptance criterion.
43
+
44
+ Return concrete blockers with source references and the affected unit or acceptance
45
+ ID. MAIN resolves routine choices within the request. Only material owner decisions
46
+ go to the existing single clarification round; do not start another requirements
47
+ round or ask the owner to settle routine code choices.
48
+
49
+ Skip this check for already-executable plans and mechanical changes. End after one
50
+ bounded pass. It does not authorize new scope or consequential effects, replace
51
+ required review, or demand elegance without a concrete implementation defect.
52
+ Keep findings in the current plan; do not create another tracker.
53
+
54
+ ## Keep the contract and outcome connected
55
+
56
+ Keep one acceptance ledger. Link it from the spec when the project uses a
57
+ separate tracker. Record each ID's current evidence, remaining check or blocker;
58
+ do not copy mutable status into several files. Use the SDD lifecycle for the
59
+ overall spec state. Test completion does not silently accept a pending deploy.
60
+
61
+ Routine file-list and execution-order changes stay within the existing scope.
62
+ New behavior, risk, external effects or material acceptance changes require
63
+ the SDD change-control path. Preserve blocked criteria while unrelated work
64
+ advances. Never drop a requirement to make the ledger look complete.
65
+
66
+ Follow [communication](communication.md). English technical specs, procedures
67
+ and reports default to Writing's `TECHNICAL` mode unless another mode is
68
+ requested. Preserve the requested language and exact constraints.
69
+ A small diagram can explain dependencies; use an interactive artifact only
70
+ when interaction helps a real decision and the host supports it. Do not add
71
+ media, dependencies, paid calls or publication merely to make the output richer.
72
+
73
+ ## Stop at the requested boundary
74
+
75
+ - **Spec only:** deliver the reviewed specification and actual approval state.
76
+ Do not implement it or mark product delivery `ACCEPTED`.
77
+ - **End to end:** finish all required acceptance IDs with inspected evidence,
78
+ then report the result, checks and remaining uncertainty.
79
+ - **Missing material decision:** name the exact choice and affected IDs; keep
80
+ useful independent work moving. Do not infer permission to publish or spend.
81
+ - **Session interruption:** checkpoint the existing tracker. A saved file alone
82
+ does not restart a client or provide an unattended execution service.
@@ -0,0 +1,209 @@
1
+ # Long-run state and recovery
2
+
3
+ Read this reference only after Flow's detailed-ledger gate passes. It preserves
4
+ safe resume and delegated coordination without forcing machine ceremony into
5
+ ordinary single-session work.
6
+
7
+ ## One canonical ledger
8
+
9
+ Use the project's existing Markdown tracker when suitable. Otherwise create one
10
+ small task-local Markdown artifact. It is the only mutable owner of execution state;
11
+ specifications define required truth, reports provide evidence, and the wiki
12
+ stores durable knowledge.
13
+
14
+ Record the run boundary once:
15
+
16
+ ```text
17
+ Run:
18
+ Frozen request/spec and fingerprint:
19
+ Base checkout and commit:
20
+ State owner:
21
+ Integration owner:
22
+ Owner gates:
23
+ Stop conditions:
24
+ ```
25
+
26
+ Use one row per independently auditable outcome, not per command:
27
+
28
+ ```text
29
+ ID | Outcome | Method | Owner/session | Dependencies | Write scope |
30
+ Proof | Owner gate | Status
31
+ ```
32
+
33
+ `Method` is one primary owner: a NoBrainer skill, maintained project capability,
34
+ reviewed temporary capability or `DIRECT` for a truly mechanical step. Known
35
+ implementation, verification, correction, integration and closeout work must
36
+ appear before execution starts.
37
+
38
+ Useful states are `PENDING`, `READY`, `RUNNING`, `BLOCKED`, `REPORTED`,
39
+ `AUDITED`, `ACCEPTED`, `CORRECTION_REQUIRED`, `OWNER_DECISION_REQUIRED` and
40
+ `STOPPED`. A report or green
41
+ exit code cannot move a row to `ACCEPTED` without current proof.
42
+
43
+ The owner-facing Progress checklist is only a view of this ledger. Update both
44
+ from the same evidence at meaningful transitions.
45
+
46
+ ## Durable goal and resume
47
+
48
+ When this reference is active, keep the portable goal in an existing Markdown
49
+ tracker or one task-local Markdown `GOAL_FILE`. Do not create a second mutable
50
+ status owner. The minimum readable block is:
51
+
52
+ ```text
53
+ GOAL_ID: <stable identity>
54
+ OUTCOME: <observable result>
55
+ NON_GOALS: <bounded exclusions>
56
+ DOD: <acceptance checks>
57
+ STATUS: ACTIVE | OWNER_DECISION_REQUIRED | COMPLETE | BLOCKED
58
+ CHECKPOINT: <last verified state and evidence pointer>
59
+ NEXT_SAFE_ACTION: <one action or NONE>
60
+ SESSION_POLICY: <policy reference or NONE>
61
+ LAST_HEALTH_READBACK: <event, result, evidence pointer>
62
+ ```
63
+
64
+ The Markdown goal works without any native goal API. A host-native goal is an
65
+ optional mirror and control handle, used only when available and authorized by
66
+ the host's tool rules; never create it merely because this reference was loaded.
67
+ After session start, compaction or a verified clear, read `GOAL_FILE` from disk,
68
+ verify `GOAL_ID`, repository, checkout, HEAD/dirty state, status and evidence,
69
+ then reconcile any native goal actually used and continue from `NEXT_SAFE_ACTION`. A
70
+ transcript summary, cached plan or native goal never overrides newer file state.
71
+ The same file owns the outcome-level TODO rows; health gates may checkpoint them
72
+ but cannot mark work complete. On every material transition, update the current
73
+ row, evidence and next safe action before starting another unit.
74
+
75
+ ## Recovery card
76
+
77
+ For unattended or resumable work, record:
78
+
79
+ ```text
80
+ Trigger and frozen inputs:
81
+ Expected outputs:
82
+ Checkpoint and resume command/path:
83
+ Idempotence key or duplicate-prevention rule:
84
+ Retry budget and blocker fingerprint:
85
+ Evidence location:
86
+ Rollback:
87
+ Attention budget and urgent owner events:
88
+ ```
89
+
90
+ Do not invent a retry path. If a step cannot be safely resumed or repeated,
91
+ state that before starting it and require the appropriate checkpoint or owner
92
+ gate.
93
+
94
+ At session start or after compaction, reconcile the exact checkout, base/HEAD,
95
+ dirty state, ledger fingerprint, active sessions/writers, last accepted proof
96
+ and next `READY` row. A stale summary never authorizes a successor.
97
+
98
+ ## Bounded turns and runtime release
99
+
100
+ An outcome or goal may span bounded turns, but it never grants an unlimited
101
+ turn/session lease. Run `SESSION_HEALTH_GATE` at `START`, `AFTER_COMPACTION`,
102
+ `MATERIAL_TRANSITION` and `BEFORE_CLOSEOUT`. The policy is host/config supplied;
103
+ these are policy fields, not universal limits:
104
+
105
+ ```text
106
+ TURN_AGE_LIMIT: <configured value | NONE>
107
+ HISTORY_SIZE_LIMIT: <configured value | NONE>
108
+ COMPACTION_LIMIT: <configured value | NONE>
109
+ COST_OR_TOKENS_LIMIT: <configured value | NONE>
110
+ WARNING_THRESHOLD: <configured value | NONE>
111
+ HARD_THRESHOLD: <configured value | NONE>
112
+ SIGNALS: <turn age, history size, compactions, cost/tokens, owned workers>
113
+ ```
114
+
115
+ Each signal is a readback value, `UNKNOWN`, `UNSUPPORTED`, or `NONE` when no
116
+ limit is configured. Missing expected telemetry is not `HEALTHY`. Missing optional
117
+ telemetry lowers that proof claim but does not block safe work: use bounded work
118
+ units and the Markdown checkpoint. An explicitly required hard budget that cannot
119
+ be measured or enforced blocks only the work depending on that guarantee; report
120
+ the missing capability instead of claiming the cap holds. The gate
121
+ result is `HEALTHY | WARNING | ROTATE_REQUIRED | UNKNOWN | UNSUPPORTED`. A
122
+ warning checkpoints the goal/TODO and stops starting optional workers or large
123
+ new units while continuing the safe current unit. A hard limit means persist `GOAL_FILE`,
124
+ write a compact handoff, verify no write is in flight, and select:
125
+
126
+ ```text
127
+ CLEAR_MODE: HOST_CLEAR | END_TURN | MANUAL_REQUIRED | UNSUPPORTED
128
+ ```
129
+
130
+ Use `HOST_CLEAR` only when the host advertises the capability and readback
131
+ proves the same goal file remains durable and no task-owned writer is active.
132
+ Otherwise end the turn or require manual action. Never claim a clear from a
133
+ command submission alone. Creating or rotating a session requires current or standing task authorization
134
+ under the Sessions startup contract; do not infer it from a timeout, compaction
135
+ or continued goal. Explicit Flow invocation activates assessment only; stricter host
136
+ consent requirements still apply.
137
+
138
+ `task_complete` closes an outcome only; it does not prove `RUNTIME_RELEASE`.
139
+ Record `RUNTIME_RELEASE` as `VERIFIED | NOT_RELEASED | UNKNOWN | UNSUPPORTED`.
140
+ Where the host can read back task-owned browser, tool or subprocess workers,
141
+ `VERIFIED` requires no owned worker remains. Active workers are
142
+ `NOT_RELEASED`; missing or unsupported readback lowers runtime proof and never
143
+ supports a clean-runtime claim.
144
+
145
+ An empty ready set is not itself a blocker. If work is `RUNNING`, wait for its
146
+ bounded result; if `REPORTED`, audit it; if all acceptance is met, finish. If all
147
+ unfinished work is blocked, record the blocker, owner and next unblock step;
148
+ use `OWNER_DECISION_REQUIRED` only when an actual owner decision is needed.
149
+ Do not invent work to keep a goal active.
150
+
151
+ ## Team, queue and transport
152
+
153
+ Use one primary MAIN session. A native subagent with a returned ID, bounded task,
154
+ disjoint write scope and observable completion needs no new visible task or
155
+ persistent session registry. Audit its artifact and termination before integration.
156
+ Create a durable visible session only under the
157
+ [canonical rule](../SKILL.md#choose-the-smallest-workflow).
158
+ Use native subagents for delegated units; if unavailable, continue in MAIN.
159
+ For a persistent delegated queue:
160
+
161
+ 1. `nobrainer-team` maps every independent ready unit to a bounded native assignment.
162
+ 2. If several delegated units form a queue, `nobrainer-dispatcher` computes the
163
+ ready set and bounded batch.
164
+ 3. MAIN spawns each bounded unit as a native subagent; only for owner-authorized
165
+ visible sessions does `nobrainer-sessions` create/reuse exact sessions, check
166
+ identity and writer state, and send each unit.
167
+ 4. Dispatcher may record `READY -> SENT` only from the send receipt: the returned
168
+ native worker ID or Sessions' transport readback.
169
+
170
+ The queued transitions are `Team -> Dispatcher SCHEDULE -> native subagent spawn
171
+ -> Dispatcher DISPATCH` (default) and, for visible sessions:
172
+
173
+ `Team -> Dispatcher SCHEDULE -> Sessions setup/delegate -> Dispatcher DISPATCH`
174
+
175
+ On that path Sessions alone performs identity preflight and transport. On either
176
+ path Dispatcher never duplicates the send or treats a planned assignment as delivered.
177
+
178
+ A worker receives one outcome, inputs, exact write scope, proof, stop conditions
179
+ and report destination. It never chooses a successor.
180
+
181
+ When a worker reports, MAIN audits a native worker against its returned ID, and
182
+ Sessions performs `RECEIVE_AUDIT` for a visible session, against the exact worker,
183
+ host, checkout, commit, diff, tests, evidence and released writer state.
184
+ If Dispatcher owns the queue, its reconcile step consumes that audited result
185
+ before releasing dependencies.
186
+
187
+ ## Failure and correction
188
+
189
+ - Unknown dependency, identity, write ownership or lease state is `BLOCKED`.
190
+ - A changed owner decision supersedes the old requirement, stops affected
191
+ not-started rows and invalidates dependent proof.
192
+ - A verified review finding becomes `CORRECTION_REQUIRED` and returns to Build.
193
+ - A repeated blocker keeps one stable fingerprint; retry only after a changed
194
+ condition or new evidence.
195
+ - Timeout, dead session, partial output and retry exhaustion preserve the row as
196
+ incomplete.
197
+
198
+ Close the ledger only when every required row is `ACCEPTED` or explicitly
199
+ `STOPPED` by a superseding owner decision, all writers are released, final proof
200
+ is current and rollback is still intelligible.
201
+
202
+ ## Adaptive fresh-session continuation
203
+
204
+ For owner-enabled `session-restart`, reuse this goal and its progress rows.
205
+ Sessions owns the [restart protocol](../../nobrainer-sessions/references/session-restart.md):
206
+ quiet milestone assessment, compact checkpoint, verified fresh target, conditional
207
+ ownership transfer and source archive after takeover. A stale summary or timer
208
+ does not authorize a successor. Keep model policy, pending operations and native
209
+ goal/scheduler ownership in the handoff; do not create another status owner.
@@ -0,0 +1,83 @@
1
+ # Model policy and routing
2
+
3
+ `nobrainer-tech-flow` owns the model policy. This contract is portable:
4
+ clients may execute it, expose a model choice, or report `UNSUPPORTED`;
5
+ no provider is assumed. A model name, manifest or default setting is not
6
+ runtime proof.
7
+
8
+ MAIN keeps the model and effort selected by the user in every client. Use the
9
+ [Codex adapter](codex-routing.md) only for Codex-specific capability discovery,
10
+ not as a universal model preset. Client detection and model availability
11
+ require readback. Use [Auto Fine Tune](../../nobrainer-auto-fine-tune/SKILL.md)
12
+ when repeated work warrants measured route calibration.
13
+
14
+ ## Freeze one policy before work
15
+
16
+ Record the policy in the canonical plan and copy it into each delegated work
17
+ unit. Use the smallest policy that meets the acceptance bar:
18
+
19
+ ```text
20
+ MODEL_POLICY: STANDARD | EXTENDED | ROUTED
21
+ MODEL: HOST_SELECTED | <exact supported id> | UNKNOWN
22
+ EFFORT: DEFAULT | <exact supported setting> | UNKNOWN
23
+ BUDGET: tokens=<n>; time=<duration>; cost=<limit> | UNKNOWN
24
+ ESCALATION: NONE | PROPOSE | OWNER_APPROVAL
25
+ ROUTE_REASON: <risk, complexity, latency or evidence reason>
26
+ ```
27
+
28
+ - If no policy is supplied, keep the owner- or host-selected MAIN model.
29
+ Use `STANDARD` for a clear one-unit task or a client without native
30
+ workers. Use `ROUTED` by default for substantial work with useful
31
+ independent units and verified native worker support.
32
+ - `STANDARD` uses the owner- or host-selected model and effort. It is the fallback
33
+ for small work, unavailable native workers or one-model hosts. Unknown capacity
34
+ permits bounded incremental dispatch under the delivery contract.
35
+ - `EXTENDED` keeps that identity while allowing a larger declared
36
+ effort, context, time or cost budget and bounded extra verification. A
37
+ stronger model is an explicit policy change with an exact model and gate; it
38
+ is never a hidden retry.
39
+ - `ROUTED` is the bounded default for useful parallel work: it selects a
40
+ capable worker for each independent unit from models the host actually
41
+ exposes. Prefer a smaller, quicker route when the task's acceptance can
42
+ still be met. Record the exact model, effort and budget
43
+ before dispatch. If the target is unavailable, use an already verified
44
+ capable worker route within the same authority or continue in MAIN; report
45
+ the degraded mode. An uncertain send must be reconciled before retry.
46
+
47
+ ## Routing heuristics
48
+
49
+ These heuristics choose a worker route; they do not gate eligible dispatch under
50
+ [team execution](delivery.md#coordinated-team-execution).
51
+
52
+ - For each independent ready unit, choose a smaller or faster worker only when
53
+ the current host advertises it, the assignment accepts it, and the expected
54
+ setup plus audit cost is lower than the critical-path benefit. Use measured
55
+ cost and latency when available; otherwise mark them unknown.
56
+ - Default to useful native parallelism when the task splits cleanly. A second
57
+ perspective may catch defects, and a smaller worker may avoid repeating
58
+ MAIN's full context. These are mechanisms to evaluate, not universal
59
+ measured improvements in quality, speed or token use.
60
+ - Use the host-selected/default capable model for ordinary implementation;
61
+ routine units get the lowest effort that still meets acceptance.
62
+ - Give every worker the same shared assignment prefix with the unit-specific
63
+ part last; prompt-cache reuse from this is plausible but unmeasured.
64
+ - Request a stronger tier only when ambiguity, security, architecture, failed
65
+ proof or a declared quality bar justifies its added budget.
66
+ - Delegate disjoint research, implementation and review units proactively
67
+ when useful. Use the maximum verified *useful* concurrency up to the host
68
+ limit, with one exact write owner per file. MAIN integrates results while
69
+ workers run. Pass the frozen policy to each worker; it cannot choose a
70
+ successor, recursively delegate or escalate itself without assignment authority.
71
+ - A unit that reaches its `BUDGET` stops and reports partial results.
72
+ Escalate only when new evidence changes the cost or acceptance decision.
73
+ State the blocker, target tier, expected benefit, added budget and approval
74
+ gate before starting the next attempt.
75
+
76
+ ## Proof and limits
77
+
78
+ Record `MODEL_REQUESTED`, `MODEL_ACTUAL`,
79
+ `EFFORT`, budget and provider/client version when the host exposes
80
+ them. `UNKNOWN` or `UNSUPPORTED` keeps the runtime claim
81
+ `UNVERIFIED`. This is a portable policy, not a cross-provider model
82
+ gateway; a client may implement `ROUTED`, but the skills cannot claim
83
+ automatic switching until a clean runtime readback proves it.