ultra-builder-pro-cli 0.26.1 → 0.26.2
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.
- package/.ultra-template/north-star.md +20 -31
- package/.ultra-template/project-brief.md +28 -0
- package/.ultra-template/specs/product.md +4 -0
- package/.ultra-template/specs/research-distillate.md +8 -0
- package/.ultra-template/test-report.json +1 -0
- package/CHANGELOG.md +64 -0
- package/README.md +60 -28
- package/docs/ARCHITECTURE.md +32 -9
- package/docs/ARTIFACT-AUTHORITY.md +42 -13
- package/docs/DECISIONS.md +20 -3
- package/docs/PHILOSOPHY.md +9 -7
- package/docs/SKILL-AUTHORING.md +10 -6
- package/docs/WORKFLOW-LIFECYCLE.md +99 -39
- package/hooks/README.md +7 -2
- package/hooks/_common.py +54 -5
- package/hooks/session_context.py +34 -8
- package/package.json +1 -1
- package/skills/ultra-change/SKILL.md +52 -63
- package/skills/ultra-change/references/change-contract.md +37 -5
- package/skills/ultra-delegate/SKILL.md +14 -3
- package/skills/ultra-deliver/SKILL.md +48 -43
- package/skills/ultra-deliver/references/baseline-reconciliation.md +5 -3
- package/skills/ultra-dev/SKILL.md +8 -8
- package/skills/ultra-grilling/SKILL.md +9 -9
- package/skills/ultra-init/SKILL.md +62 -87
- package/skills/ultra-init/references/brownfield-adoption.md +23 -40
- package/skills/ultra-plan/SKILL.md +29 -18
- package/skills/ultra-research/SKILL.md +91 -68
- package/skills/ultra-research/references/{03-competitive-landscape.md → 03-alternatives.md} +6 -6
- package/skills/ultra-research/references/22-success-metrics.md +8 -4
- package/skills/ultra-research/references/99-synthesis.md +8 -1
- package/skills/ultra-research/references/wayfinding.md +42 -0
- package/skills/ultra-review/SKILL.md +4 -1
- package/skills/ultra-status/SKILL.md +62 -32
- package/skills/ultra-tdd/SKILL.md +5 -2
- package/skills/ultra-test/SKILL.md +26 -12
- package/skills/ultra-test/scripts/worktree_digest.cjs +42 -8
- package/skills/ultra-think/SKILL.md +5 -10
- package/skills/ultra-think/references/interaction-boundary.md +2 -1
|
@@ -1,49 +1,32 @@
|
|
|
1
|
-
# Brownfield
|
|
1
|
+
# Brownfield initialization
|
|
2
2
|
|
|
3
|
-
Use this procedure only when `ultra-init`
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Use this procedure only when `ultra-init` finds maintained behavior but no healthy,
|
|
4
|
+
complete Ultra skeleton. Init preserves the checkout and prepares an evidence route; it
|
|
5
|
+
does not establish the brownfield baseline.
|
|
6
6
|
|
|
7
7
|
## Bind the repository boundary
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
generated
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
Identify the repository root, selected workspace roots, branch, `HEAD`, dirty files,
|
|
10
|
+
generated or vendored exclusions, manifests, maintained documents, verification
|
|
11
|
+
commands, and visible public entry points. Resolve these from files and Git instead of
|
|
12
|
+
asking the owner.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Preserve before interpreting
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
- Never replace existing `.ultra` files, `CONTEXT.md`, decisions, or maintained project
|
|
17
|
+
documents merely to obtain the current template shape.
|
|
18
|
+
- Treat source, tests, runtime configuration, and documentation as evidence candidates,
|
|
19
|
+
not conclusions Init may promote.
|
|
20
|
+
- Keep out-of-scope dirty files visible in the report without adding them to the
|
|
21
|
+
Project Brief or specification skeletons.
|
|
22
|
+
- Record an exact legacy one-line as raw intake only when the Project Brief is empty.
|
|
20
23
|
|
|
21
|
-
##
|
|
24
|
+
## Prepare the Research handoff
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
unresolved questions.
|
|
28
|
-
- Initialize `.ultra/tasks.json` and `.ultra/test-report.json` from the packaged
|
|
29
|
-
templates without manufacturing passing results.
|
|
26
|
+
List the concrete paths and live seams that can answer each open baseline question.
|
|
27
|
+
`ultra-research` establishes the observed and accepted baseline from those sources. Init
|
|
28
|
+
does not run verification, classify delivered behavior, reconcile documentation drift,
|
|
29
|
+
or write product, discovery, or architecture conclusions.
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Characterize verification
|
|
35
|
-
|
|
36
|
-
Run the repository's existing verification commands. Record each result as `pass`,
|
|
37
|
-
`known_red`, or `not_run`; a missing command is not a pass. A critical public seam
|
|
38
|
-
without a stable signal is an explicit gap, not an excuse to invent completion.
|
|
39
|
-
|
|
40
|
-
## Converge
|
|
41
|
-
|
|
42
|
-
Read every written file back, show the owner the selected scope, observed behavior,
|
|
43
|
-
drift, known-red verification, unknowns, and material decisions, and leave unresolved
|
|
44
|
-
items marked `[NEEDS CLARIFICATION]`. Adoption is ready when the file set is complete,
|
|
45
|
-
the recorded revision matches the inspected checkout, and every material gap remains
|
|
46
|
-
visible with its evidence and owner decision where one exists.
|
|
47
|
-
|
|
48
|
-
Recommend `ultra-change` for subsequent work and stop; public skills do not invoke one
|
|
49
|
-
another.
|
|
31
|
+
Report the preserved files, repository boundary, candidate evidence, and unresolved
|
|
32
|
+
questions. Recommend Research and stop; public workflows never invoke one another.
|
|
@@ -5,22 +5,26 @@ description: Turn an evidenced Change intent into a dependency-valid task ledger
|
|
|
5
5
|
|
|
6
6
|
# Turn one Change into executable tracer bullets
|
|
7
7
|
|
|
8
|
-
Planning owns decomposition and technical design
|
|
9
|
-
sessions and hosts; no runtime state decides whether the plan is meaningful.
|
|
8
|
+
Planning owns decomposition and technical design; files carry it across sessions and hosts.
|
|
10
9
|
|
|
11
10
|
## Before you start
|
|
12
11
|
|
|
13
|
-
1.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
1. Resolve exactly one `.ultra/changes/active/<change_id>/intent.md`. If none or more
|
|
13
|
+
than one exists, stop with that file conflict. The intent must be `accepted`, every
|
|
14
|
+
blocking decision resolved, and its `## Research Disposition` exit evidence
|
|
15
|
+
satisfied before decomposition.
|
|
16
|
+
2. Read `.ultra/tasks.json`; select matching tasks and read each unfinished context and
|
|
17
|
+
Resume Note. Preserve all historical tasks in the append-only ledger.
|
|
18
|
+
3. Read `CONTEXT.md` for vocabulary and the relevant `.ultra/decisions/` entries.
|
|
19
|
+
4. Read the active Change intent, its `trace_to` specification anchors, and the
|
|
17
20
|
source, tests, consumers and recovery paths those anchors describe.
|
|
18
21
|
|
|
19
22
|
## Definition of done
|
|
20
23
|
|
|
21
|
-
- `.ultra/tasks.json` and one `.ultra/contexts/task-<id>.md` per task
|
|
22
|
-
identifiers, status, dependencies and trace anchors.
|
|
23
|
-
- The owner confirmed
|
|
24
|
+
- `.ultra/tasks.json` and one `.ultra/contexts/task-<id>.md` per current-Change task
|
|
25
|
+
agree on identifiers, stable `change_id`, status, dependencies and trace anchors.
|
|
26
|
+
- The owner confirmed any material posture. Seams resolve to code; technical selection
|
|
27
|
+
stays model-owned unless it changes public contract, accepted risk, or material trade-off.
|
|
24
28
|
- Every feature task is a tracer bullet touching at least two layers, unless the
|
|
25
29
|
Change itself demonstrably touches only one layer.
|
|
26
30
|
- Every context names the north-star hard constraints its work could violate, and
|
|
@@ -38,8 +42,8 @@ separate `plan.md` authority.
|
|
|
38
42
|
Use `../ultra-grilling/SKILL.md` through the host-native question surface when the
|
|
39
43
|
choice remains material, one question with a recommendation at a time.
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
When the whole path is still unclear, recommend `ultra-research`; the Change is not yet
|
|
46
|
+
evidenced enough to decompose. For one consequential trade-off, use `../ultra-think/SKILL.md`.
|
|
43
47
|
|
|
44
48
|
## Choose the plan shape
|
|
45
49
|
|
|
@@ -58,16 +62,23 @@ Build the graph with these structural defences:
|
|
|
58
62
|
- A feature task that touches only one of several affected layers is merged or split
|
|
59
63
|
into a tracer bullet; moving a whole layer into one task is horizontal slicing.
|
|
60
64
|
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
Record seams before tests. The model chooses the technical seam: prefer an existing,
|
|
66
|
+
highest observable public seam, ideally one. Ask the owner only when it changes the
|
|
67
|
+
public contract or another material product, risk, or recovery trade-off.
|
|
63
68
|
|
|
64
69
|
## Write the files
|
|
65
70
|
|
|
66
71
|
Each task records `id`, `title`, `type`, `priority`, `complexity`, `status`,
|
|
67
|
-
`dependencies`, `context_file`, `trace_to` and `
|
|
72
|
+
`dependencies`, `context_file`, `trace_to` and `change_id`. Task ids are globally
|
|
73
|
+
unique, and every dependency must name a task with the same `change_id`; an archived
|
|
74
|
+
Change must never become an implicit prerequisite of current work. Complexity is only a
|
|
68
75
|
splitting and context signal: 1–2 is local, 3–5 is bounded, 6–7 crosses a boundary,
|
|
69
76
|
and complexity > 7 must split.
|
|
70
77
|
|
|
78
|
+
Append new tasks or repair matching current-Change tasks in place; never replace the
|
|
79
|
+
ledger with only the latest graph. A `quick` Change produces exactly one minimal task
|
|
80
|
+
and context rather than bypassing the task/evidence lifecycle.
|
|
81
|
+
|
|
71
82
|
Each context records Change Acceptance IDs, task-local Acceptance, confirmed seams,
|
|
72
83
|
layers touched, target files, Implementation, verification commands, the hard
|
|
73
84
|
constraints the work could violate, Definition of Drift, Change Log, Completion and
|
|
@@ -95,11 +106,11 @@ capability from the files; do not invoke it.
|
|
|
95
106
|
|
|
96
107
|
## When the owner decides
|
|
97
108
|
|
|
98
|
-
The owner chooses
|
|
99
|
-
|
|
100
|
-
|
|
109
|
+
The owner chooses material posture, reductions, omissions, and any seam changing public
|
|
110
|
+
contract or material trade-off. The model owns technical decomposition and seams.
|
|
111
|
+
Repair mechanical cycles and broken paths before handoff.
|
|
101
112
|
|
|
102
113
|
## References
|
|
103
114
|
|
|
104
115
|
- `../ultra-grilling/SKILL.md` — read before a material posture or seam question.
|
|
105
|
-
- `../ultra-think/SKILL.md` — read when
|
|
116
|
+
- `../ultra-think/SKILL.md` — read when one evidenced decision blocks decomposition.
|
|
@@ -1,88 +1,111 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ultra-research
|
|
3
|
-
description: Turn
|
|
3
|
+
description: Turn a raw Project Brief or scoped evidence gap into an accepted North Star, domain language, cited product and architecture specifications, and a hash-bound synthesis. Use after initialization, for brownfield baselining, or inside an active Change whose consequential claims are not yet evidenced.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Mature a project outline into an evidence-backed baseline
|
|
7
7
|
|
|
8
|
-
Research owns
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Research owns the first accepted baseline and later evidence-backed corrections. Web
|
|
9
|
+
search is one evidence source, not the workflow: repository files, Git, tests, runtime,
|
|
10
|
+
maintained documentation, owner decisions, and current primary sources all count.
|
|
11
11
|
|
|
12
12
|
## Before you start
|
|
13
13
|
|
|
14
|
-
1.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
1. Resolve at most one active `change_id`, then read `.ultra/tasks.json` plus the
|
|
15
|
+
`context_file` and `## Resume Note` of unfinished tasks whose `change_id` matches it,
|
|
16
|
+
if any. Archived or abandoned unfinished rows are history, not the current frontier.
|
|
17
|
+
2. Read `.ultra/project-brief.md`. For a legacy project without it, treat the exact
|
|
18
|
+
`.ultra/north-star.md` `## One-line` as raw intake until a brief is preserved.
|
|
19
|
+
3. Read existing `.ultra/north-star.md`, specifications, `CONTEXT.md`, relevant
|
|
20
|
+
`.ultra/decisions/`, active Change intent, evidence, Git state, and maintained docs.
|
|
19
21
|
|
|
20
22
|
## Definition of done
|
|
21
23
|
|
|
22
|
-
- Every selected
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
and
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
24
|
+
- Every selected lens has a cited `.ultra/research/<run-id>/<area>.md` report and its
|
|
25
|
+
canonical specification section contains the current conclusion.
|
|
26
|
+
- The accepted North Star, shared vocabulary, product baseline, and architecture
|
|
27
|
+
baseline are sufficient for the current planning boundary; unknowns stay explicit.
|
|
28
|
+
- `99-synthesis.md` names what was promoted, overturned, deferred, or left blocking.
|
|
29
|
+
- `.ultra/specs/research-distillate.md` stores the Git blob hash of each specification
|
|
30
|
+
it summarizes. A mismatch makes the distillate stale, never authoritative.
|
|
31
|
+
|
|
32
|
+
## Find the path before collecting evidence
|
|
33
|
+
|
|
34
|
+
When coverage spans several lenses or the path itself is unclear, read
|
|
35
|
+
`references/wayfinding.md` and write `.ultra/research/<run-id>/brief.md`. Skip that file
|
|
36
|
+
for one already-bounded evidence question. Wayfinding selects the smallest useful
|
|
37
|
+
coverage; it does not create workflow state or another semantic authority.
|
|
38
|
+
|
|
39
|
+
Map the brief and unresolved specification sections to seventeen focused evidence
|
|
40
|
+
lenses. Confirm the proposed coverage once with the owner. Load one reference
|
|
41
|
+
at a time; the parent holds the question map, not every step prompt.
|
|
42
|
+
|
|
43
|
+
The first six lenses have real semantic dependencies:
|
|
44
|
+
|
|
45
|
+
- `00-problem-validation` runs before `01-opportunity-discovery` because an opportunity must trace to a problem.
|
|
46
|
+
- `02-market-assessment` and `03-alternatives` are conditional lenses and may run in parallel once the boundary is known.
|
|
47
|
+
- `04-product-strategy` is the first owner checkpoint and consumes the relevant conclusions from `00` through `03`.
|
|
48
|
+
- `05-assumptions-validation` extracts load-bearing assumptions from `00` through `04` after the strategy decision.
|
|
49
|
+
|
|
50
|
+
The later groups turn that premise into product behavior (`10` through `22`), then an
|
|
51
|
+
architecture and operating baseline (`30` through `41`). The three owner checkpoints
|
|
52
|
+
remain `04-product-strategy`, `21-features-scope`, and `99-synthesis`.
|
|
53
|
+
|
|
54
|
+
Only areas with satisfied inputs may fan out through native bounded subagents. Never
|
|
55
|
+
parallelize a lens whose question depends on an unresolved earlier conclusion.
|
|
56
|
+
|
|
57
|
+
## Investigate, ask, and decide
|
|
58
|
+
|
|
59
|
+
For each selected lens:
|
|
60
|
+
|
|
61
|
+
1. Inspect reachable facts before asking. Search current primary sources when a claim
|
|
62
|
+
depends on current external reality.
|
|
63
|
+
2. Separate Observed, Verified, Decided, Inference, and Unknown; cite external claims.
|
|
64
|
+
3. Follow `../ultra-grilling/SKILL.md` when a required owner field is missing. The lens
|
|
65
|
+
supplies what to ask; Grilling supplies the one-question interaction loop.
|
|
66
|
+
4. Follow `../ultra-think/SKILL.md` for one consequential trade-off, not for mapping the
|
|
67
|
+
whole research frontier.
|
|
68
|
+
5. Follow `../ultra-domain-modeling/SKILL.md` when evidence settles a shared term. The
|
|
69
|
+
first such term creates `CONTEXT.md`; later calls sharpen it.
|
|
70
|
+
6. Write the area report, then replace the mapped specification section instead of
|
|
71
|
+
appending a second version. Git retains history.
|
|
72
|
+
|
|
73
|
+
For scoped Research inside an active Change, answer only its recorded `Research
|
|
74
|
+
Disposition` question and produce the named exit evidence. Research writes reports and
|
|
75
|
+
the mapped canonical baseline sections; it does not silently rewrite Change acceptance.
|
|
76
|
+
Return the evidence paths so `ultra-change` can reconcile the accepted intent before
|
|
77
|
+
planning when that contract must change.
|
|
78
|
+
|
|
79
|
+
If web access is unavailable, record `[UNVERIFIED: no web access]` and continue with
|
|
80
|
+
other evidence. Missing tooling lowers confidence; it does not manufacture a blocker.
|
|
81
|
+
|
|
82
|
+
## Synthesize the accepted baseline
|
|
83
|
+
|
|
84
|
+
`04-product-strategy` proposes the direction. `22-success-metrics` determines whether a
|
|
85
|
+
single North Star metric is justified or whether an observable outcome plus guardrails
|
|
86
|
+
is more honest. After the owner accepts `99-synthesis`, update `.ultra/north-star.md`,
|
|
87
|
+
the three specifications, domain language, qualifying decisions, and the distillate for
|
|
88
|
+
the first baseline. A scoped Research run updates only its mapped specification sections
|
|
89
|
+
and then refreshes the distillate's three source hashes.
|
|
90
|
+
|
|
91
|
+
Load `references/99-synthesis.md` only after selected reports exist. Read every promoted
|
|
92
|
+
file back, verify trace anchors and source hashes, and report exact unresolved gaps.
|
|
93
|
+
Recommend the next explicit public workflow from the resulting files; do not invoke it.
|
|
72
94
|
|
|
73
95
|
## When the owner decides
|
|
74
96
|
|
|
75
|
-
The owner chooses coverage, resolves the three checkpoints,
|
|
76
|
-
|
|
77
|
-
|
|
97
|
+
The owner chooses coverage, resolves the three checkpoints, accepts a North Star and
|
|
98
|
+
material deferrals, and authorizes any REDUCTION. The model establishes evidence facts,
|
|
99
|
+
selects methods, and updates accepted files inside that frame.
|
|
78
100
|
|
|
79
101
|
## References
|
|
80
102
|
|
|
103
|
+
- `references/wayfinding.md` — read only for multi-lens or unclear research paths.
|
|
81
104
|
- `references/00-problem-validation.md` through `references/05-assumptions-validation.md`
|
|
82
|
-
— product premise and strategy; load only a selected
|
|
83
|
-
- `references/10-user-personas.md` through `references/22-success-metrics.md` —
|
|
84
|
-
|
|
105
|
+
— product premise and strategy; load only a selected lens.
|
|
106
|
+
- `references/10-user-personas.md` through `references/22-success-metrics.md` — actors,
|
|
107
|
+
behavior, scope, and measurements.
|
|
85
108
|
- `references/30-architecture-context.md` through `references/41-quality-risks.md` —
|
|
86
|
-
system boundary, implementation evidence,
|
|
109
|
+
system boundary, implementation evidence, operations, and risk.
|
|
87
110
|
- `references/99-synthesis.md` — load last, after selected reports exist.
|
|
88
|
-
- `../ultra-think/references/autonomy-boundary.md` — read before
|
|
111
|
+
- `../ultra-think/references/autonomy-boundary.md` — read before reducing authority.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Alternatives
|
|
2
2
|
|
|
3
|
-
Use for workflow step `03-
|
|
3
|
+
Use for workflow step `03-alternatives`.
|
|
4
4
|
|
|
5
5
|
## Objective
|
|
6
6
|
|
|
7
7
|
Identify the alternatives actors actually use and the consequences for strategy.
|
|
8
|
-
Alternatives
|
|
9
|
-
nothing.
|
|
8
|
+
Alternatives include direct products, adjacent tools, manual workflows, or doing
|
|
9
|
+
nothing; a competitor-only frame is too narrow.
|
|
10
10
|
|
|
11
11
|
## Evidence
|
|
12
12
|
|
|
13
13
|
- Use current product documentation, pricing, repositories, filings, or observed user
|
|
14
14
|
workflows.
|
|
15
15
|
- Evaluate only criteria that change the decision at hand.
|
|
16
|
-
- Do not create a ceremonial matrix, fixed
|
|
16
|
+
- Do not create a ceremonial matrix, fixed alternative count, or unsupported claim of
|
|
17
17
|
superiority.
|
|
18
18
|
- Distinguish a verified capability from marketing language and inference.
|
|
19
19
|
|
|
20
20
|
## Record
|
|
21
21
|
|
|
22
|
-
Update `discovery.md` with
|
|
22
|
+
Update `discovery.md` with relevant alternatives, evidence, meaningful differences,
|
|
23
23
|
switching constraints, and durable strategy implications. Record an unknown when a
|
|
24
24
|
credible alternative cannot be verified.
|
|
25
25
|
|
|
@@ -12,13 +12,17 @@ including signals that would reveal harmful optimization.
|
|
|
12
12
|
- Derive measurements from accepted outcomes and available instrumentation.
|
|
13
13
|
- State definition, source, observation window, owner, and decision use.
|
|
14
14
|
- Separate current measurements, target decisions, and unavailable telemetry.
|
|
15
|
-
-
|
|
15
|
+
- Propose one North Star outcome or metric when justified by delivered value and a
|
|
16
|
+
credible observation contract.
|
|
17
|
+
- Do not force a single metric, or invent baselines and targets, when guardrails plus an
|
|
18
|
+
observable outcome represent the product more honestly.
|
|
16
19
|
|
|
17
20
|
## Record
|
|
18
21
|
|
|
19
|
-
Update `product.md` with outcome measures, operational measures, guardrails,
|
|
20
|
-
availability, and unresolved instrumentation needs.
|
|
21
|
-
|
|
22
|
+
Update `product.md` with supporting outcome measures, operational measures, guardrails,
|
|
23
|
+
evidence availability, and unresolved instrumentation needs. Propose the canonical
|
|
24
|
+
`NS-01` entry for `north-star.md`; it becomes authority only through accepted synthesis.
|
|
25
|
+
A metric that cannot be observed is a gap or explicit future Change.
|
|
22
26
|
|
|
23
27
|
Complete the step with evidence references and the updated output path.
|
|
24
28
|
|
|
@@ -20,9 +20,16 @@ creating a second condensed authority.
|
|
|
20
20
|
|
|
21
21
|
## Record
|
|
22
22
|
|
|
23
|
+
Update `.ultra/north-star.md` with the accepted project direction, North Star outcome or
|
|
24
|
+
explicit no-single-metric decision, hard constraints, exclusions, and Research trace.
|
|
25
|
+
Keep raw owner wording in `project-brief.md`; do not process it in place.
|
|
26
|
+
|
|
23
27
|
Write `research-distillate.md` as a navigation and traceability artifact containing
|
|
24
28
|
baseline ids, source document anchors, accepted decisions, blockers, gaps, verification
|
|
25
|
-
evidence,
|
|
29
|
+
evidence, the exact planning entry, and the current Git blob hash from
|
|
30
|
+
`git hash-object` for `product.md`, `architecture.md`, and `discovery.md`. Do not
|
|
31
|
+
duplicate the specifications' prose. A later mismatch marks the distillate stale; it
|
|
32
|
+
does not make the old synthesis authoritative.
|
|
26
33
|
|
|
27
34
|
Write the final `99-synthesis.md` report, link all three specification paths, the
|
|
28
35
|
distillate path, and the evidence used for synthesis. Read those files back before
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Research wayfinding
|
|
2
|
+
|
|
3
|
+
Use this method when Research spans several lenses or the path itself is unclear. Skip
|
|
4
|
+
it for one bounded evidence question whose destination is already known.
|
|
5
|
+
|
|
6
|
+
## Objective
|
|
7
|
+
|
|
8
|
+
Turn fog into a small question map without turning the map into workflow authority.
|
|
9
|
+
Select the smallest sufficient coverage that can establish the current baseline or
|
|
10
|
+
unlock the active Change.
|
|
11
|
+
|
|
12
|
+
## Inspect first
|
|
13
|
+
|
|
14
|
+
Read the Project Brief, accepted authority, unresolved specification sections, current
|
|
15
|
+
repository evidence, active Change, and owner statements already present. Do not ask a
|
|
16
|
+
question whose answer is reachable in those sources.
|
|
17
|
+
|
|
18
|
+
## Write the run brief
|
|
19
|
+
|
|
20
|
+
Write `.ultra/research/<run-id>/brief.md` with:
|
|
21
|
+
|
|
22
|
+
- entry question and planning boundary;
|
|
23
|
+
- known facts and their sources;
|
|
24
|
+
- unknowns, each with the decision it can change;
|
|
25
|
+
- selected lenses, semantic dependencies, and explicit omissions;
|
|
26
|
+
- likely evidence sources and current freshness limits;
|
|
27
|
+
- owner decisions and the checkpoint that owns each one;
|
|
28
|
+
- a stop condition stated as an observable artifact or resolved decision.
|
|
29
|
+
|
|
30
|
+
The brief is derived navigation, not semantic authority. Specifications, the North Star,
|
|
31
|
+
`CONTEXT.md`, and accepted decisions remain canonical. Rebuild or discard the map when
|
|
32
|
+
evidence changes; never add a completion flag merely to route another Skill.
|
|
33
|
+
|
|
34
|
+
## Keep the frontier small
|
|
35
|
+
|
|
36
|
+
Prefer one load-bearing question over a speculative tree. Add a branch only when a
|
|
37
|
+
viable answer would change selected evidence, product direction, scope, or architecture.
|
|
38
|
+
Questions that cannot change the current boundary belong in explicit deferred work, not
|
|
39
|
+
the active map.
|
|
40
|
+
|
|
41
|
+
Wayfinding chooses where to investigate. Each evidence lens defines what to establish;
|
|
42
|
+
Grilling defines how to ask the owner; Think resolves one consequential decision.
|
|
@@ -10,7 +10,10 @@ happens here, after several slices make a useful structure visible, not inside T
|
|
|
10
10
|
|
|
11
11
|
## Before you start
|
|
12
12
|
|
|
13
|
-
1.
|
|
13
|
+
1. Resolve the review scope first. For task or active-Change review, resolve exactly one
|
|
14
|
+
active `change_id`, read `.ultra/tasks.json`, and select only matching tasks before
|
|
15
|
+
reading the scoped task's `context_file` and `## Resume Note`. Historical review must
|
|
16
|
+
name its archived Change explicitly and never infer scope from unfinished status.
|
|
14
17
|
2. Read `CONTEXT.md`, relevant `.ultra/decisions/`, acceptance, evidence and exact diff.
|
|
15
18
|
3. Create `.ultra/reviews/<session>/` and one immutable packet naming HEAD, scope,
|
|
16
19
|
output path, acceptance and public seams. Follow `references/worker-packet.md`,
|