ultra-builder-pro-cli 5.0.0 → 6.0.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 (159) hide show
  1. package/CHANGELOG.md +113 -3
  2. package/README.md +67 -478
  3. package/README.zh-CN.md +49 -422
  4. package/adapters/_shared/frontmatter.cjs +1 -18
  5. package/adapters/_shared/plugin-core.cjs +17 -83
  6. package/adapters/_shared/runtime-assets.cjs +6 -120
  7. package/adapters/claude.js +8 -24
  8. package/adapters/codex.js +16 -38
  9. package/bin/install.js +35 -57
  10. package/docs/PLUGIN-ISOLATION-CONTRACT.md +13 -101
  11. package/docs/examples/drive/claude-reviewer.sh +53 -0
  12. package/docs/examples/drive/claude-writer.sh +43 -0
  13. package/engine/FORMATS.md +1051 -0
  14. package/engine/checks.cjs +139 -0
  15. package/engine/cli.cjs +148 -0
  16. package/engine/completion.cjs +48 -0
  17. package/engine/context.cjs +94 -0
  18. package/engine/drive.cjs +220 -0
  19. package/engine/expect-worker.cjs +5 -0
  20. package/engine/expect.cjs +33 -0
  21. package/engine/formats.cjs +189 -0
  22. package/engine/git-state.cjs +112 -0
  23. package/engine/ledger.cjs +205 -0
  24. package/engine/loading.cjs +28 -0
  25. package/engine/merge.cjs +273 -0
  26. package/engine/milestone.cjs +89 -0
  27. package/engine/plan.cjs +232 -0
  28. package/engine/project.cjs +5 -0
  29. package/engine/signals.cjs +3 -0
  30. package/engine/states.cjs +175 -0
  31. package/hooks/session-start.cjs +54 -0
  32. package/package.json +17 -52
  33. package/skills/ultra/SKILL.md +395 -0
  34. package/.ultra-template/changes/abandoned/.gitkeep +0 -0
  35. package/.ultra-template/changes/active/.gitkeep +0 -1
  36. package/.ultra-template/changes/archive/.gitkeep +0 -1
  37. package/.ultra-template/contexts/TEMPLATE.md +0 -135
  38. package/.ultra-template/decisions/.gitkeep +0 -1
  39. package/.ultra-template/evidence/.gitkeep +0 -1
  40. package/.ultra-template/north-star.md +0 -52
  41. package/.ultra-template/project-brief.md +0 -28
  42. package/.ultra-template/research/.gitkeep +0 -1
  43. package/.ultra-template/specs/architecture.md +0 -81
  44. package/.ultra-template/specs/discovery.md +0 -74
  45. package/.ultra-template/specs/product.md +0 -80
  46. package/.ultra-template/specs/research-distillate.md +0 -57
  47. package/.ultra-template/tasks.json +0 -4
  48. package/.ultra-template/test-report.json +0 -44
  49. package/adapters/_shared/host-profile.cjs +0 -5
  50. package/adapters/grok.js +0 -242
  51. package/adapters/kimi.js +0 -232
  52. package/adapters/opencode.js +0 -408
  53. package/adapters/zcode.js +0 -375
  54. package/bin/delegate-worker.cjs +0 -5
  55. package/bin/delegate.cjs +0 -5
  56. package/docs/ARCHITECTURE.md +0 -274
  57. package/docs/ARTIFACT-AUTHORITY.md +0 -305
  58. package/docs/DECISIONS.md +0 -229
  59. package/docs/PHILOSOPHY.md +0 -261
  60. package/docs/RUNTIME-COMPAT-MATRIX.md +0 -315
  61. package/docs/SKILL-AUTHORING.md +0 -113
  62. package/docs/WORKFLOW-LIFECYCLE.md +0 -350
  63. package/docs/evals/adversarial-review-2026-08-14.md +0 -84
  64. package/docs/evals/ultra-5-0-journey-results.md +0 -62
  65. package/docs/evals/ultra-5-0-live-acp-conformance.md +0 -93
  66. package/docs/evals/ultra-5-0-route-journeys.md +0 -145
  67. package/docs/evals/zcode-automation-2026-08-14.md +0 -103
  68. package/hooks/README.md +0 -52
  69. package/hooks/_common.py +0 -1779
  70. package/hooks/adapters/codex.py +0 -295
  71. package/hooks/adapters/grok.py +0 -134
  72. package/hooks/adapters/kimi.py +0 -156
  73. package/hooks/adapters/zcode.py +0 -227
  74. package/hooks/block_dangerous_commands.py +0 -201
  75. package/hooks/compact_context.py +0 -224
  76. package/hooks/mid_workflow_recall.py +0 -47
  77. package/hooks/post_edit_guard.py +0 -215
  78. package/hooks/session_context.py +0 -741
  79. package/skills/ultra-change/SKILL.md +0 -165
  80. package/skills/ultra-change/references/change-contract.md +0 -199
  81. package/skills/ultra-change/references/execution-grant.md +0 -109
  82. package/skills/ultra-change/references/primary-transfer.md +0 -273
  83. package/skills/ultra-change/scripts/validate_primary_transfer.cjs +0 -1928
  84. package/skills/ultra-delegate/SKILL.md +0 -195
  85. package/skills/ultra-delegate/patches/zcode-acp-0.1.0-zcode-0.16.5.patch +0 -184
  86. package/skills/ultra-delegate/references/delegation-contract.md +0 -138
  87. package/skills/ultra-delegate/scripts/acp-conformance.cjs +0 -287
  88. package/skills/ultra-delegate/scripts/acp-driver.cjs +0 -762
  89. package/skills/ultra-delegate/scripts/agent-execution-driver.cjs +0 -320
  90. package/skills/ultra-delegate/scripts/cli-driver.cjs +0 -61
  91. package/skills/ultra-delegate/scripts/delegate-profiles/kimi-read-only.md +0 -15
  92. package/skills/ultra-delegate/scripts/delegate-profiles/kimi-write.md +0 -17
  93. package/skills/ultra-delegate/scripts/delegate-worker.cjs +0 -328
  94. package/skills/ultra-delegate/scripts/delegate.cjs +0 -690
  95. package/skills/ultra-delegate/scripts/delegate_wait.py +0 -86
  96. package/skills/ultra-delegate/scripts/host-profile.cjs +0 -267
  97. package/skills/ultra-deliver/SKILL.md +0 -194
  98. package/skills/ultra-deliver/references/baseline-reconciliation.md +0 -41
  99. package/skills/ultra-dev/SKILL.md +0 -265
  100. package/skills/ultra-dev/references/debugging.md +0 -22
  101. package/skills/ultra-domain-modeling/SKILL.md +0 -79
  102. package/skills/ultra-grilling/SKILL.md +0 -121
  103. package/skills/ultra-grilling/references/reframing.md +0 -76
  104. package/skills/ultra-init/SKILL.md +0 -143
  105. package/skills/ultra-init/references/brownfield-adoption.md +0 -32
  106. package/skills/ultra-init/scripts/init_project.cjs +0 -1031
  107. package/skills/ultra-plan/SKILL.md +0 -160
  108. package/skills/ultra-plan/references/task-evidence-v2.md +0 -300
  109. package/skills/ultra-plan/scripts/validate_task_evidence.cjs +0 -859
  110. package/skills/ultra-research/SKILL.md +0 -167
  111. package/skills/ultra-research/references/00-problem-validation.md +0 -36
  112. package/skills/ultra-research/references/01-opportunity-discovery.md +0 -33
  113. package/skills/ultra-research/references/02-market-assessment.md +0 -31
  114. package/skills/ultra-research/references/03-alternatives.md +0 -31
  115. package/skills/ultra-research/references/04-product-strategy.md +0 -41
  116. package/skills/ultra-research/references/05-assumptions-validation.md +0 -31
  117. package/skills/ultra-research/references/10-user-personas.md +0 -30
  118. package/skills/ultra-research/references/11-user-scenarios.md +0 -28
  119. package/skills/ultra-research/references/20-user-stories.md +0 -31
  120. package/skills/ultra-research/references/21-features-scope.md +0 -38
  121. package/skills/ultra-research/references/22-success-metrics.md +0 -33
  122. package/skills/ultra-research/references/30-architecture-context.md +0 -30
  123. package/skills/ultra-research/references/31-solution-strategy.md +0 -28
  124. package/skills/ultra-research/references/32-building-blocks.md +0 -28
  125. package/skills/ultra-research/references/40-deployment.md +0 -29
  126. package/skills/ultra-research/references/41-quality-risks.md +0 -28
  127. package/skills/ultra-research/references/99-synthesis.md +0 -59
  128. package/skills/ultra-research/references/north-star-v2.md +0 -168
  129. package/skills/ultra-research/references/wayfinding.md +0 -50
  130. package/skills/ultra-research/scripts/validate_north_star.cjs +0 -1174
  131. package/skills/ultra-review/SKILL.md +0 -275
  132. package/skills/ultra-review/references/adversarial-evaluation.md +0 -31
  133. package/skills/ultra-review/references/code.md +0 -17
  134. package/skills/ultra-review/references/comments.md +0 -12
  135. package/skills/ultra-review/references/design.md +0 -12
  136. package/skills/ultra-review/references/errors.md +0 -13
  137. package/skills/ultra-review/references/review-modes.md +0 -29
  138. package/skills/ultra-review/references/spec.md +0 -18
  139. package/skills/ultra-review/references/tests.md +0 -12
  140. package/skills/ultra-review/references/unified-schema.md +0 -284
  141. package/skills/ultra-review/references/worker-packet.md +0 -183
  142. package/skills/ultra-review/scripts/review_wait.py +0 -2943
  143. package/skills/ultra-status/SKILL.md +0 -209
  144. package/skills/ultra-status/references/route-contract.md +0 -100
  145. package/skills/ultra-tdd/SKILL.md +0 -91
  146. package/skills/ultra-tdd/references/templates/README.md +0 -20
  147. package/skills/ultra-tdd/references/templates/feature-flag-default-audit.sh +0 -79
  148. package/skills/ultra-tdd/references/templates/persistence-real.ts +0 -78
  149. package/skills/ultra-tdd/references/templates/testcontainer-postgres.py +0 -78
  150. package/skills/ultra-tdd/references/templates/testcontainer-postgres.ts +0 -73
  151. package/skills/ultra-tdd/references/templates/vertical-slice.ts +0 -66
  152. package/skills/ultra-tdd/references/test-execution.md +0 -23
  153. package/skills/ultra-test/SKILL.md +0 -244
  154. package/skills/ultra-test/references/export-syntax.md +0 -18
  155. package/skills/ultra-test/scripts/validate_review_transport.cjs +0 -549
  156. package/skills/ultra-test/scripts/worktree_digest.cjs +0 -576
  157. package/skills/ultra-think/SKILL.md +0 -56
  158. package/skills/ultra-think/references/autonomy-boundary.md +0 -48
  159. package/skills/ultra-think/references/interaction-boundary.md +0 -42
@@ -1,165 +0,0 @@
1
- ---
2
- name: ultra-change
3
- description: Open or reconcile one bounded unit of work by comparing specification promises with actual code, then writing the intent that closes the gap. Use when no Change is active and a feature, fix, redesign, or incident response is requested, or when an active Change's draft, researched evidence, or accepted boundary must be reconciled.
4
- ---
5
-
6
- # Reconcile first, then write down what this Change commits to
7
-
8
- A Change connects research, plan, implementation, verification, review, and delivery.
9
- Reconcile first so new intent does not bury an existing specification/code conflict.
10
-
11
- ## Route modes
12
-
13
- | Mode | Entry | Observable exit | Next |
14
- |---|---|---|---|
15
- | `intake` | Explicit owner request with no active Change | One stable draft `change_id` captures outcome, acceptance, non-goals, seams, trace, and Research Disposition | Stay in `ultra-change` for acceptance or move to `evidence-needed` |
16
- | `evidence-needed` | The draft names one load-bearing question and required exit evidence | The bounded Research Disposition is owner-visible and records its return to this Change | Recommend `ultra-research/change-scoped` |
17
- | `reconcile` | Explicit invocation or a valid Execution Grant for the same active Change | Research or implementation evidence is dispositioned in the same intent and any material delta is accepted | Recommend or continue to `ultra-plan/decompose` when the intent is accepted |
18
- | `accepted` | Explicit owner acceptance of the Change outcome and boundary | Accepted intent, current trace, satisfied Research Disposition, and resolved material decisions are read back | Recommend `ultra-plan/decompose` |
19
-
20
- Follow `../ultra-status/references/route-contract.md`. A draft may be revised in place;
21
- an already accepted owner decision is revised by a superseding decision record so its
22
- history remains recoverable. Show a Route Card before each public transition. Under a
23
- valid grant only the non-material `reconcile` mode may continue implicitly.
24
-
25
- ## Before you start
26
-
27
- 1. If model-selected, require `reconcile` mode for the same active Change and verify a
28
- live grant under `references/execution-grant.md`. Any intake, evidence-needed boundary,
29
- acceptance, abandonment, reduction, or primary transfer stops and recommends current
30
- explicit owner invocation; a coarse Host invocation bit cannot authorize it.
31
- 2. Read `references/change-contract.md` and apply its **Active Change authority
32
- resolution** before reading any active `intent.md`, relying on a current `change_id`,
33
- or creating or writing a Change. Continue only from its positively observed stable
34
- zero-or-one result; return its typed repair for any other result. With one active
35
- Change, read `.ultra/tasks.json`, then only its unfinished `context_file` values.
36
- Update the same `change_id`; never open a second active Change.
37
- 3. Read `.ultra/project-brief.md`, `CONTEXT.md`, relevant `.ultra/decisions/`, and
38
- `.ultra/north-star.md` for raw provenance, accepted language, and direction.
39
- 4. Grep archive and abandoned Changes that touched this area. Prefer archived
40
- `delivery.md`; otherwise read `archive-summary.md`, `verification.md`, `intent.md`,
41
- and remaining Markdown. Read abandoned Changes as history of rejected boundaries and
42
- reusable evidence, never current intent. A missing `delivery.md` does not mean no history;
43
- repeated modules are an architecture signal.
44
-
45
- ## Whether this skill applies at all
46
-
47
- | Situation | Where it goes |
48
- |---|---|
49
- | No active Change, and a new bounded request exists | Here — create one stable id |
50
- | One active Change needs its draft, Research evidence, or accepted boundary reconciled | Here — update the same `change_id` |
51
- | A separate request arrives while one Change remains active | Do not create a second Change; finish or deliver the current one, abandon it with owner authority, or explicitly fold the request into its boundary |
52
- | A task is in progress and the specification turns out not to match reality | Not here — the dual-write path inside `ultra-dev` |
53
- | The change makes no sentence in the specifications false | Outside the Ultra lifecycle — use ordinary repository TDD and verification |
54
-
55
- If no specification sentence becomes untrue, there is nothing to reconcile. Use
56
- `../ultra-tdd/SKILL.md` when helpful, but create no Change artifacts or Ultra
57
- Test/Deliver claim for that micro change.
58
-
59
- ## Definition of done
60
-
61
- - Active `intent.md` states outcome, typed acceptance with named required evidence,
62
- non-goals, public seams,
63
- and Research Disposition.
64
- - Every reconciliation bucket is empty or dispositioned with the owner's answer.
65
- - The draft remains editable until owner acceptance makes it authority.
66
-
67
- ## Reconcile against a bounded scope
68
-
69
- A Change does not rebuild the project baseline; reconcile only the touched specification sections
70
- and leave unrelated gaps visible with four rerunnable steps:
71
-
72
- 1. Decide which specification sections this request touches.
73
- 2. Collect past tasks whose `trace_to` points there and the code files they changed.
74
- 3. Use `git log -- .ultra/specs/<file>` to find its last specification change.
75
- 4. Inspect `git diff <that commit>..HEAD -- <those code files>`.
76
-
77
- Sort what you find into three buckets, each with your recommended disposition:
78
-
79
- | Bucket | Meaning |
80
- |---|---|
81
- | Specification says it, code does not implement it | Promised and missing |
82
- | Code implements it, no specification says so | Built and unpromised |
83
- | Both speak and they conflict | Contradictory |
84
-
85
- Take non-empty buckets to the owner because disposition can withdraw a commitment.
86
- Ask one recommended question per `HC-<n>` impact or removed promise; group remaining
87
- low-risk rows into one recommended list for confirmation.
88
-
89
- ## Write the intent
90
-
91
- Read `references/change-contract.md` and use its exact headings. Until planning or
92
- delivery, the active directory contains only this contract; add no parallel record.
93
-
94
- Use `../ultra-grilling/SKILL.md` to settle the boundary and
95
- `../ultra-domain-modeling/SKILL.md` for new domain terms.
96
-
97
- Use `../ultra-think/SKILL.md` only for one consequential evidenced trade-off. If the
98
- whole path is unclear, recommend Research instead of manufacturing tasks.
99
-
100
- Record `## Research Disposition` exactly. `none` needs enough evidence to plan;
101
- `bounded` or `required` names one question, selected lenses, and exit evidence. After
102
- Research, reconcile outputs here; an unverified path or bare claim is not evidence.
103
- Record one `## North Star Trace` with resolving `FP-<n>`/`NS-<n>`/`HC-<n>` ids, causal
104
- evidence, the accepted revision, the current Git blob digest, and any contradiction
105
- requiring owner disposition. Reference IDs only; do not mirror North Star prose.
106
-
107
- When Research accepts a revision whose id or digest differs from an active Change trace,
108
- that active Change has a stale observation, not a semantic failure. Preserve its intent,
109
- tasks, review, Test, and delivery evidence; reconcile old IDs to the accepted revision,
110
- surface contradictions for owner disposition, and invalidate any plan-bound execution
111
- approval through its own contract. Never silently rewrite the North Star or infer that a
112
- replacement grants execution.
113
-
114
- Every active Change still goes through `ultra-plan`; once durable intent exists, the
115
- smallest evidence-backed task graph for its real seams binds development, review,
116
- audit, and delivery to the stable `change_id`. The profile never fixes task or context
117
- count.
118
-
119
- Output active `intent.md` under a stable id, justified specification patches, qualifying
120
- decision or vocabulary updates. For an evidence gap recommend `ultra-research`; when
121
- evidenced recommend `ultra-plan`. Invoke neither without a covering grant; with a valid
122
- grant covering same-Change reconciliation and Plan, show the transition Route Card and
123
- allow Plan to re-verify its own entry contract.
124
-
125
- ## Abandoning a Change
126
-
127
- Append the exact `## Abandonment` closure from `references/change-contract.md`, then
128
- `git mv .ultra/changes/active/<id> .ultra/changes/abandoned/<id>`. Keep completed-task
129
- evidence. Future Change and Status consume this history; it is neither current intent
130
- nor an orphan. Abandonment is the owner's call.
131
-
132
- ## When the primary writer changes Agent
133
-
134
- When the owner moves the canonical implementation authority of an active
135
- work package to another Agent, follow `references/primary-transfer.md` exactly:
136
- the sender writes current reality into the task context and its Resume Note,
137
- derives the OFFER from canonical files and Git, and stops writing after the
138
- receiver's ready ACK; the receiver stable-reads, verifies every digest, and
139
- becomes the sole canonical writer. A delegated worker slice is never a
140
- substitute — `ultra-delegate` owns the mutually exclusive bounded-worker path.
141
- Validate receipts with
142
- `scripts/validate_primary_transfer.cjs`; the report is structural observation,
143
- never an acceptance.
144
-
145
- ## When the owner decides
146
-
147
- Every non-empty bucket, the Change boundary, abandonment, and anything
148
- reconciliation turns up that shrinks a prior commitment. A change that makes no
149
- specification sentence false needs no permission at all.
150
-
151
- If the owner rejects the presented options or says none is adequate, preserve that
152
- answer as current intake and keep the intent draft or move it to `evidence-needed`.
153
- Gather the missing discriminating evidence or present materially different options; do
154
- not select the nearest rejected option, manufacture acceptance, or route to Plan.
155
-
156
- ## References
157
-
158
- - `../ultra-grilling/SKILL.md` — the loop for settling the boundary.
159
- - `references/change-contract.md` — canonical Active Change authority resolution, exact
160
- `intent.md` structure, and profile fields.
161
- - `references/execution-grant.md` — read when the owner requests bounded workflow continuation under a session-local or durable grant.
162
- - `references/primary-transfer.md` — read when the owner moves the work package's canonical writer to another Agent (OFFER → ACK → RESULT).
163
- - `../ultra-status/references/route-contract.md` — owner-visible route, checkpoint, and recovery output.
164
- - `../ultra-think/references/autonomy-boundary.md` — read before removing a promise.
165
- - `../ultra-tdd/SKILL.md` — read for an evidenced one-slice correction.
@@ -1,199 +0,0 @@
1
- # Change Contract and profile
2
-
3
- Create one contract before planning. Keep every field specific enough to verify and
4
- stable enough to survive a fresh session.
5
-
6
- The directory id is globally unique across active, archive, and abandoned Changes and
7
- matches `[A-Za-z0-9][A-Za-z0-9._-]*`. It is the stable `change_id`; moving the directory
8
- never changes it.
9
-
10
- ## Active Change authority resolution
11
-
12
- Every Skill that selects a current `change_id`, reads active intent, or creates a new
13
- Change must first use native host filesystem checks to apply this instruction contract.
14
- It is not a parser, registry, or persisted state.
15
- A positively observed absent `.ultra` is the existing uninitialized condition:
16
- `ultra-status` may recommend `ultra-init`, while writers write nothing. This known
17
- absence is distinct from an unavailable observation. Otherwise:
18
-
19
- 1. Require `.ultra`, `.ultra/changes`, and `.ultra/changes/active` to be a stable chain
20
- of ordinary non-symlink directories with the same no-follow identities before and
21
- after selection.
22
- 2. Stable-list every active-root entry without following symlinks. Only `.gitkeep`,
23
- when it is an ordinary regular non-symlink file, may be ignored. A `.gitkeep` of any
24
- other type is malformed, is never a Change directory, and returns a typed diagnostic
25
- with repair before any candidate intent is read. Every other non-directory or symlink
26
- entry returns a typed diagnostic with a reachable repair before any intent read.
27
- 3. A positively observed stable empty root, with or without that sole marker, means no
28
- active Change. Active authority exists only when exactly one ordinary non-symlink
29
- Change directory remains. More than one returns a typed conflict and repair; select
30
- none of them.
31
- 4. Require the selected directory's own `intent.md` to be a stable regular non-symlink
32
- file opened with no-follow behavior. Capture one bounded snapshot, then recheck the
33
- directory chain, active-root entries, selected directory, and intent identity before
34
- consuming its contents.
35
- 5. On any unavailable observation or changed identity, stop with a typed diagnostic and
36
- reachable retry or repair. Do not read any intent, route from it, write any workflow
37
- artifact, or create a new Change. Only a positively observed stable zero-directory
38
- result permits `ultra-change` to create one.
39
-
40
- ## Exact `intent.md` structure
41
-
42
- ```markdown
43
- # Change <id>: <title>
44
-
45
- > **Status**: draft | accepted
46
- > **Profile**: quick | standard | major | incident
47
- > **Profile rationale**: <why the smallest selected profile covers the blast radius>
48
- > **Risk flags**: <applicable flags, or none>
49
-
50
- ## Outcome
51
- <one externally observable result>
52
-
53
- ## Acceptance
54
- | ID | Criterion | Verification type | Required evidence |
55
- |---|---|---|---|
56
-
57
- ## Non-goals
58
- - <explicit boundary>
59
-
60
- ## Public Seams
61
- - <entry point or output>
62
-
63
- ## Reconciliation
64
- ### Promised and Missing
65
- ### Built and Unpromised
66
- ### Contradictory
67
-
68
- ## Research Disposition
69
- - Disposition: none | bounded | required
70
- - Question: <the exact load-bearing unknown, or none>
71
- - Selected lenses: <reference ids, or none>
72
- - Existing evidence: <repository-relative paths and claims>
73
- - Required exit evidence: <what must exist or be resolved before planning>
74
- - Rationale: <why this is sufficient for this Change boundary>
75
-
76
- ## North Star Trace
77
- - First principles: <FP-<n> ids and the causal premise>
78
- - Serves: <NS-<n> ids and the causal contribution>
79
- - Touches: <HC-<n> ids, or none>
80
- - Evidence: <repository-relative paths and claims>
81
- - North Star revision: <accepted Revision field from `.ultra/north-star.md`>
82
- - North Star digest: <output of `git hash-object .ultra/north-star.md`>
83
- - Contradictions or refinements: <none, or the owner disposition still required>
84
-
85
- ## Execution Grant
86
-
87
- - Grant: `session-local` (default) | `durable work-package` <grant-id>
88
- - Allowed workflows: <subset of research, plan, dev, test, deliver-reconcile>
89
- - Agent topology: <single-Agent default, or the owner-selected providers, counts, and write scopes>
90
- - Allowed local effects: <exact authorized local writes, tests, and bounded verification>
91
- - Budgets and expiry: <time, cost, tool, provider, delegation, review-round ceilings and expiry>
92
- - Mandatory reviews: <plan, task, and aggregate Change requirements>
93
- - Stop conditions: <named semantic, evidence, recovery, and budget stops>
94
- - Invalidation: <conditions that end the grant and return control to the owner>
95
- - Never granted: <new Change, baseline checkpoint, finalization/archive, external effects, cross-family provider calls>
96
- - Activation: <session-local: a current-session owner utterance approving this grant and the current task ledger; durable: stable verification of the recorded grant — stored text alone is inactive>
97
-
98
- ## Planning Posture
99
- <EXPAND | SELECTIVE | HOLD | REDUCE, rationale, and owner confirmation>
100
- <!-- Scope for this Change only. Not the commitment classification: REDUCE here
101
- means "plan less work now", while a REDUCTION in a Change Log means "a
102
- promise the specification already made no longer holds". -->
103
-
104
-
105
- ## Recovery
106
- <reversal or recovery path and its verification>
107
-
108
- ## Unresolved Decisions
109
- - <stable id, summary, blocking state, owner>
110
- ```
111
-
112
- Use `[NEEDS CLARIFICATION]` for missing semantic content. Do not silently omit a
113
- heading, and do not add another file that restates the same contract.
114
-
115
- ## Contract fields
116
-
117
- - `outcome`: one externally observable result.
118
- - `acceptance`: stable ids, one criterion each, one verification type, and exact
119
- required evidence. The supported types are `command`, `inspection`,
120
- `owner-judgment`, and `external-observation`. When one outcome needs more than one
121
- authority, split it into independent criteria with unique IDs and keep one
122
- verification type per criterion. A row must not carry multiple verification types.
123
- - `non_goals`: explicit boundaries that prevent accidental scope growth.
124
- - `public_seams`: entry points or outputs through which acceptance is observed.
125
- - `recovery`: a bounded reversal or recovery strategy and its verification.
126
- - `unresolved_decisions`: stable ids, summary, blocking state, and owner when known.
127
-
128
- Resolve every blocking decision before planning. Keep non-blocking uncertainty visible
129
- in the task and verification contracts.
130
-
131
- `North Star Trace` is the Change-level semantic trace. `First principles`, `Serves`, and
132
- `Touches` ids must resolve in `.ultra/north-star.md`; `Evidence` explains the causal
133
- claim rather than merely naming the file. Revision and digest are freshness observations.
134
- A mismatch returns the intent to reconciliation and never mechanically declares
135
- alignment or contradiction. Preserve historical evidence while reconciliation maps old
136
- IDs, records contradictions, and obtains any material owner disposition.
137
-
138
- Every Change records an `Execution Grant`; `session-local` is the default and a
139
- durable grant requires an exact owner record. The exact mode behavior,
140
- activation, and durable-verification rules live in `execution-grant.md`. The
141
- grant bounds native model continuation; it is not persisted route authority.
142
-
143
- ## Why verification has to name its authority
144
-
145
- Acceptance is only auditable when the observation and its authority are explicit:
146
-
147
- - `command` records the exact command, working directory, exit status, and retained raw
148
- output reference;
149
- - `inspection` cites the exact file, revision or digest, and the observed fact;
150
- - `owner-judgment` cites the durable owner disposition without replacing it with a
151
- machine proxy; only the owner can supply its semantic result;
152
- - `external-observation` records the provider or environment, run identity, observation
153
- time, and retained raw result.
154
-
155
- Development, Review, Test, and Deliver may verify that the required evidence exists,
156
- is fresh, and is bound to the criterion. They must not turn a command exit code, regex,
157
- digest, or schema result into a semantic verdict for an inspection, owner judgment, or
158
- external observation. Missing or stale evidence returns a typed gap to the responsible
159
- model or owner; it never silently deletes the criterion or manufactures acceptance.
160
- A validator owns exact structure, identity, and provenance only; validator success is
161
- never a semantic pass.
162
-
163
- ## Profile
164
-
165
- - `quick`: a bounded low-risk change with no material risk flags and no research dependency.
166
- - `standard`: a bounded change with ordinary integration risk.
167
- - `major`: a broad or consequential change with material contract, migration,
168
- authorization, security, multi-module, external-integration, or release impact.
169
- - `incident`: urgent diagnosis and recovery with a reproducible symptom. Baseline
170
- break-glass still requires a recorded approver and recovery contract.
171
-
172
- Record a profile rationale and every applicable risk flag. Select the smallest profile
173
- whose guarantees cover the real blast radius; never use profile labels to prescribe a
174
- task count, file count, review effort, or estimate.
175
-
176
- ## Research Disposition
177
-
178
- The `Disposition` value is exactly `none | bounded | required`. Use `none` with a
179
- rationale when accepted evidence is sufficient. Use `bounded` for one already-framed
180
- question whose smallest sufficient lenses are known; it skips Wayfinding. Use `required`
181
- when several load-bearing claims or the evidence path itself remain unclear, so Research
182
- may Wayfind before selecting lenses. Both name the exact question, selected or candidate
183
- Research lenses, existing evidence, and required exit evidence.
184
- The host model evaluates whether the named evidence exists and supports the claim; do
185
- not add a `research_complete` bit, score, or workflow state. Planning waits while the
186
- recorded exit evidence is unsatisfied.
187
-
188
- ## Exact abandonment closure
189
-
190
- Before moving an owner-abandoned Change, append this exact structure to `intent.md`:
191
-
192
- ```markdown
193
- ## Abandonment
194
- - Date:
195
- - Owner decision:
196
- - Reason:
197
- - Reusable evidence:
198
- - Recovery or successor:
199
- ```
@@ -1,109 +0,0 @@
1
- # Change-scoped execution grants (session-local or durable)
2
-
3
- Use this reference only after the owner has accepted one active Change and wants
4
- an Agent to continue through a bounded local execution segment. The host's
5
- native model-tool loop is the executor; repository authority and ordinary
6
- workflow contracts remain unchanged.
7
-
8
- Ultra Builder Pro 3.0 has exactly two grant modes. Choosing a duration is not
9
- choosing a second product:
10
-
11
- - **Mode A — `session-local`** (the default): the owner's authorization lives
12
- only in the current conversation. A fresh Agent may read the files for
13
- context, but must obtain a new activation from the owner before continuing.
14
- When the conversation activation is lost — a fresh session, another host, or
15
- compaction — the work stops.
16
- - **Mode B — `durable work-package`**: the owner explicitly issues an exact
17
- grant so one named work package can continue across sessions, hosts, and
18
- compaction. A fresh Agent or host may continue that package only after
19
- stably verifying the recorded grant.
20
-
21
- Neither mode grants finalization or archive: writing `delivery.md`, deciding
22
- version or package posture, and moving a Change to archive always require a
23
- current explicit owner invocation, in every mode.
24
-
25
- ## What a grant is not
26
-
27
- - A grant is not inferred from task status, progress records, prose, Hook
28
- output, Resume notes, or a stored quote. Stored grant text is inactive data
29
- until a consuming Agent verifies it.
30
- - A grant never includes external or irreversible effects by default: commit,
31
- push, tag, publication, deployment, real installation, credentials, and
32
- incremental provider spend each require their own current owner
33
- authorization, even under a durable grant.
34
- - A grant is not a daemon, scheduler, or auto-wake: it answers "may this
35
- continued work proceed", not "who runs next".
36
- - An Agent cannot create, widen, or extend its own grant. A topology or scope
37
- change returns to the owner.
38
-
39
- ## Session-local activation
40
-
41
- All of these must be true:
42
-
43
- - the active `intent.md` is accepted and its North Star Trace is current;
44
- - the same session contains an explicit owner utterance naming the grant and
45
- approving the current task ledger;
46
- - the next workflow is listed under `Allowed workflows` and remains inside every
47
- budget;
48
- - the model can still point to that utterance in current conversation context.
49
-
50
- After a fresh session, a different host, or compaction that no longer contains
51
- the activation, stop and ask the owner to re-activate after `ultra-status`
52
- reconstructs the files.
53
-
54
- ## Durable grant verification
55
-
56
- Before relying on a recorded `durable work-package` grant, a fresh Agent must
57
- stably verify, from the repository alone:
58
-
59
- 1. the grant record's exact bytes and its cited accepted-design digest (for
60
- example the SHA-256 recorded in the owner decision);
61
- 2. the repository identity and base HEAD the grant names;
62
- 3. the current work-package status (the implementation WIP or Change intent);
63
- 4. the grant's subject, scope, Agent topology, allowed local effects,
64
- budgets/expiry, review budget, invalidation, and revocation clauses;
65
- 5. that no invalidation condition has fired.
66
-
67
- Any mismatch, ambiguity, or unknown stops the work and returns to the owner.
68
- Handoff passes the grant identity (path and digest); it never copies a new
69
- authorization prose into a second file.
70
-
71
- ## Continuing the native loop
72
-
73
- After one workflow reaches its own observable completion, reread the intent,
74
- ledger, current evidence, review results, and budgets. If no stop condition
75
- applies, select the next covered workflow through the host's native Skill
76
- surface. Run one ready task at a time; never parallelize canonical writes. When
77
- the owner has not selected a multi-Agent topology, the current Agent continues
78
- alone: no automatic spawning, delegation, or control-plane enablement.
79
-
80
- A grant-covered Deliver run may reconcile, review, and report, and then stops
81
- before finalization: its inputs, writes, and effects end at the report. Only a
82
- current explicit owner invocation of `ultra-deliver` may write `delivery.md`,
83
- decide version or package posture, or archive the Change.
84
-
85
- Do not add a route ledger or progress authority. Task status, existing
86
- evidence, review artifacts, the Test report, and Git remain the observations
87
- the model interprets.
88
-
89
- ## Budgets, stops, and termination
90
-
91
- Each budget is a hard ceiling and a resource observation, never evidence of
92
- semantic completion. Stop immediately for a REDUCTION, a North Star
93
- contradiction or stale trace, an unmet owner checkpoint, `Stalled` or
94
- `Unreachable` development, a disputed or unresolved P0/P1 finding,
95
- residual-risk acceptance, task-graph drift, lost activation (session-local) or
96
- failed grant verification (durable), or budget exhaustion. Report completed
97
- evidence and the cheapest safe next action.
98
-
99
- A grant never authorizes a new Change, a baseline acceptance, scope or risk
100
- acceptance, finalization or archival, external or irreversible effects, or
101
- cross-family provider calls beyond its recorded topology. Review terminates
102
- under the accepted convergence contract, and its precedence is one rule: an
103
- exact current owner grant overrides the versioned product default of
104
- one initial review plus at most two
105
- P0/P1 delta reviews per coherent work package.
106
- P2/P3 findings are reported and never auto-repaired, no budget extends itself,
107
- and the same root cause surviving three failed fixes stops point-patching and
108
- reports an architecture problem. Existing host permission and destructive-effect
109
- guards remain in force.