@sireai/optimus 0.1.43 → 0.1.45
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/dist/cli/optimus.js +2 -0
- package/dist/cli/optimus.js.map +1 -1
- package/dist/problem-solving-core/codex/codex-runner.d.ts +8 -0
- package/dist/problem-solving-core/codex/codex-runner.js +210 -5
- package/dist/problem-solving-core/codex/codex-runner.js.map +1 -1
- package/dist/task-environment/delivery/delivery-warning-copy.js +1 -8
- package/dist/task-environment/delivery/delivery-warning-copy.js.map +1 -1
- package/dist/task-environment/delivery/feishu-analysis-doc-service.js +1 -1
- package/dist/task-environment/delivery/feishu-analysis-doc-service.js.map +1 -1
- package/dist/task-environment/delivery/feishu-notifier.js +5 -3
- package/dist/task-environment/delivery/feishu-notifier.js.map +1 -1
- package/dist/task-environment/delivery/pm-feishu-card-renderer.d.ts +2 -0
- package/dist/task-environment/delivery/pm-feishu-card-renderer.js +39 -13
- package/dist/task-environment/delivery/pm-feishu-card-renderer.js.map +1 -1
- package/dist/task-environment/delivery/task-delivery-service.d.ts +0 -3
- package/dist/task-environment/delivery/task-delivery-service.js +6 -113
- package/dist/task-environment/delivery/task-delivery-service.js.map +1 -1
- package/dist/task-environment/observability/logger.js +2 -0
- package/dist/task-environment/observability/logger.js.map +1 -1
- package/dist/task-environment/orchestration/task-orchestrator.js +2 -1
- package/dist/task-environment/orchestration/task-orchestrator.js.map +1 -1
- package/package.json +2 -2
- package/task-harnesses/bugfix/STANDARD.md +1 -0
- package/task-harnesses/pm/CONSTRAINTS.md +4 -12
- package/task-harnesses/pm/CONTEXT.md +2 -7
- package/task-harnesses/pm/EVOLUTION.md +4 -4
- package/task-harnesses/pm/ROLE.md +4 -8
- package/task-harnesses/pm/STANDARD.md +62 -255
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Defines the mandatory PM execution flow, artifact contract, and delivery standard.
|
|
4
4
|
|
|
5
|
+
### Required outputs
|
|
6
|
+
- `prototype.html`: the main review artifact
|
|
7
|
+
- `result.md`: dense rule supplement for downstream implementation
|
|
8
|
+
|
|
5
9
|
## Execution sequence
|
|
6
10
|
Complete work in this order:
|
|
7
11
|
|
|
@@ -12,25 +16,14 @@ Complete work in this order:
|
|
|
12
16
|
|
|
13
17
|
2. `Map`
|
|
14
18
|
- build a requirement map before designing screens or writing HTML
|
|
15
|
-
- include:
|
|
16
|
-
- product goal
|
|
17
|
-
- target user
|
|
18
|
-
- bounded scope
|
|
19
|
-
- entry point
|
|
20
|
-
- core flow
|
|
21
|
-
- key states
|
|
22
|
-
- critical rules
|
|
23
|
-
- explicit non-goals
|
|
24
|
-
- open questions
|
|
19
|
+
- include: product goal, target user, bounded scope, entry point, core flow, key states, critical rules, explicit non-goals, open questions
|
|
25
20
|
|
|
26
21
|
3. `Plan Representation`
|
|
27
22
|
- for each critical rule, choose exactly one:
|
|
28
23
|
- `Represented Interactively`
|
|
29
|
-
- `Represented via Annotation`
|
|
30
24
|
- `Downgraded / Simulated`
|
|
31
25
|
- `Not Represented`
|
|
32
26
|
- use `Represented Interactively` only when the prototype will contain direct behavioral evidence
|
|
33
|
-
- use `Represented via Annotation` when the rule is review-critical but not faithfully expressible through lightweight interaction
|
|
34
27
|
|
|
35
28
|
4. `Frame`
|
|
36
29
|
- define the minimum screen and state set that makes the accepted scope reviewable
|
|
@@ -40,27 +33,15 @@ Complete work in this order:
|
|
|
40
33
|
5. `Build`
|
|
41
34
|
- produce one reviewable `prototype.html`
|
|
42
35
|
- make the main path, major states, and key transitions inspectable
|
|
43
|
-
-
|
|
36
|
+
- keep `prototype.html` focused on product interaction; move scope, exclusion, truth-status, simulation, and open-question commentary into `result.md` unless the source explicitly defines them as in-product UI
|
|
44
37
|
|
|
45
38
|
6. `Review`
|
|
46
39
|
- explicitly spawn one reviewer subagent after the first build
|
|
47
|
-
- reviewer input must include
|
|
48
|
-
|
|
49
|
-
- source URL when available
|
|
50
|
-
- accepted scope
|
|
51
|
-
- requirement map
|
|
52
|
-
- representation plan
|
|
53
|
-
- `prototype.html` when present
|
|
54
|
-
- `result.md`
|
|
55
|
-
- `annotations.json` when present
|
|
56
|
-
- previous review findings and builder revisions when this is round 2 or 3
|
|
57
|
-
- current round number and maximum round count
|
|
40
|
+
- reviewer input must include the source requirement document, source URL when available, accepted scope, requirement map, representation plan, `prototype.html` when present, `result.md`, current round number, and maximum round count
|
|
41
|
+
- include previous reviewer findings and builder revisions in rounds 2 and 3
|
|
58
42
|
- reviewer must judge against the reviewer rubric defined below
|
|
59
|
-
- record one review round log entry
|
|
60
|
-
|
|
61
|
-
- reviewer verdict
|
|
62
|
-
- key gaps
|
|
63
|
-
- recommended revisions or explicit approval
|
|
43
|
+
- record one review round log entry with round number, reviewer verdict, key gaps, and recommended revisions or explicit approval
|
|
44
|
+
- if reviewer subagent invocation fails, log the failure, skip the reviewer loop for this run, and continue normal artifact finalization; do not hang waiting for the reviewer path to recover
|
|
64
45
|
|
|
65
46
|
7. `Revise`
|
|
66
47
|
- if the reviewer finds material gaps, revise the prototype and rerun the reviewer subagent
|
|
@@ -70,74 +51,30 @@ Complete work in this order:
|
|
|
70
51
|
- another revise-and-review pass is unlikely to improve trustworthiness materially
|
|
71
52
|
- if the final reviewer verdict still finds material gaps after the maximum rounds, downgrade closure instead of looping further
|
|
72
53
|
- the builder must read the latest reviewer output before revising
|
|
73
|
-
- each new review round must include
|
|
74
|
-
- the previous reviewer findings
|
|
75
|
-
- what the builder changed
|
|
76
|
-
- what the builder intentionally did not change and why
|
|
54
|
+
- each new review round must include the previous reviewer findings, what changed, and what was intentionally not changed and why
|
|
77
55
|
|
|
78
56
|
8. `Deliver`
|
|
79
57
|
- generate `result.md`
|
|
80
|
-
- generate `annotations.json` whenever a prototype exists
|
|
81
58
|
- generate `review-log.md` whenever the reviewer loop ran
|
|
82
59
|
- declare deviations, simulations, and unresolved implementation-critical points precisely
|
|
83
60
|
|
|
84
61
|
If execution stops early, explain which step could not be completed and why.
|
|
85
62
|
|
|
86
|
-
##
|
|
87
|
-
- the reviewer subagent must be explicitly requested;
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
- reviewer findings do not justify unlimited scope growth, denser chrome, or extra speculative screens by default
|
|
93
|
-
- each review round should classify every material finding as one of:
|
|
63
|
+
## Reviewer protocol
|
|
64
|
+
- the reviewer subagent must be explicitly requested; it is a judge, not a builder
|
|
65
|
+
- provide facts first: source requirement, source URL when available, accepted scope, produced artifacts, then builder framing
|
|
66
|
+
- required reviewer inputs: requirement document, source URL when available, accepted scope, requirement map, representation plan, `prototype.html` when present, `result.md`, current round number, maximum rounds, and prior findings/revisions for rounds 2 and 3
|
|
67
|
+
- reviewer findings do not justify unlimited scope growth, denser chrome, or speculative screens by default
|
|
68
|
+
- each review round must classify material findings as:
|
|
94
69
|
- `Must Fix Before Complete`
|
|
95
70
|
- `Can Ship As Partial`
|
|
96
71
|
- `Open Question`
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
- simulated behavior presented as if it were faithful interaction
|
|
104
|
-
- annotation layer and `annotations.json` disagree on important meaning
|
|
105
|
-
- the artifact set is too weak to guide downstream AI coding without major guessing about rules, state behavior, or implementation intent
|
|
106
|
-
- UI quality is materially below design-review expectations, especially when the requirement document already contains screenshots, diagrams, or strong structural visual cues that were not meaningfully used
|
|
107
|
-
- examples of `Can Ship As Partial`:
|
|
108
|
-
- useful prototype exists, but some non-core states remain merged or downgraded
|
|
109
|
-
- some important but secondary rules remain annotation-only or simulated
|
|
110
|
-
- the core design direction is usable, but parts of the visual system or interaction polish still fall below designer-grade expectations
|
|
111
|
-
- examples of `Open Question`:
|
|
112
|
-
- requirement ambiguity prevents stronger representation without invention
|
|
113
|
-
|
|
114
|
-
## Reviewer input contract
|
|
115
|
-
Each reviewer round should receive these inputs in this priority order:
|
|
116
|
-
|
|
117
|
-
1. `Source facts`
|
|
118
|
-
- requirement document
|
|
119
|
-
- source URL when available
|
|
120
|
-
- explicit accepted scope
|
|
121
|
-
|
|
122
|
-
2. `Produced artifacts`
|
|
123
|
-
- `prototype.html` when present
|
|
124
|
-
- `result.md`
|
|
125
|
-
- `annotations.json` when present
|
|
126
|
-
|
|
127
|
-
3. `Builder framing`
|
|
128
|
-
- requirement map
|
|
129
|
-
- representation plan
|
|
130
|
-
- declared deviations, simulations, and unresolved points
|
|
131
|
-
|
|
132
|
-
4. `Round context`
|
|
133
|
-
- current round number
|
|
134
|
-
- maximum rounds: `3`
|
|
135
|
-
- previous reviewer findings and builder revisions for rounds 2 and 3
|
|
136
|
-
|
|
137
|
-
## Reviewer output contract
|
|
138
|
-
Each reviewer round must produce a compact review record that the builder can consume directly.
|
|
139
|
-
|
|
140
|
-
Minimum fields:
|
|
72
|
+
- `Must Fix Before Complete` covers missing or wrong core flow/rule coverage, source inconsistency, weak logic demonstration, misleading simulation, artifact weakness that blocks downstream AI coding, or materially subpar UI fidelity against available source cues
|
|
73
|
+
- `Can Ship As Partial` covers useful but incomplete review artifacts: merged non-core states, simulated secondary rules, or design quality gaps that do not destroy core reviewability
|
|
74
|
+
- `Open Question` covers requirement ambiguity that cannot be resolved without invention
|
|
75
|
+
|
|
76
|
+
## Reviewer record
|
|
77
|
+
Each review round must produce a compact record with:
|
|
141
78
|
- `Round`
|
|
142
79
|
- `Reviewer Verdict`
|
|
143
80
|
- `Coverage Assessment`
|
|
@@ -156,60 +93,48 @@ Allowed `Reviewer Verdict` values:
|
|
|
156
93
|
- `Can Ship As Partial`
|
|
157
94
|
- `Approved for Prototype Complete`
|
|
158
95
|
|
|
159
|
-
##
|
|
160
|
-
|
|
161
|
-
- read the full reviewer output
|
|
162
|
-
- revise the prototype and companion artifacts when `Must Fix Before Complete` findings exist
|
|
163
|
-
- preserve unresolved but non-blocking findings inside `result.md` when closure remains partial
|
|
164
|
-
- run a full core-panel self-check before requesting the next review, not only a point fix for the previous `Must Fix`
|
|
165
|
-
- prefer downgrade over another revise round when the next change would require speculative product invention, materially larger scope, or a noisier prototype that reduces reviewability
|
|
166
|
-
- write a concise round handoff into `review-log.md` containing:
|
|
167
|
-
- what was changed
|
|
168
|
-
- what was intentionally left unchanged
|
|
169
|
-
- why the next review should or should not still expect a gap
|
|
170
|
-
|
|
171
|
-
## Reviewer rubric
|
|
172
|
-
The reviewer must evaluate the prototype against these principles in order:
|
|
96
|
+
## Review judgment order
|
|
97
|
+
The reviewer must judge in this order:
|
|
173
98
|
|
|
174
99
|
1. `Requirement completeness and correctness`
|
|
175
|
-
-
|
|
176
|
-
- important requirement content must not be missing, misunderstood, or inconsistent
|
|
100
|
+
- accepted-scope content must be present, correctly understood, and consistent with the source
|
|
177
101
|
|
|
178
102
|
2. `Logic demonstrability`
|
|
179
|
-
- deeper
|
|
180
|
-
- the prototype must not stop at first-layer description when the requirement meaning depends on richer interaction logic
|
|
103
|
+
- deeper dependencies and cause-effect behavior must be demonstrated, not left at first-layer description
|
|
181
104
|
|
|
182
105
|
3. `Representation correctness`
|
|
183
|
-
- interaction,
|
|
184
|
-
- if a rule
|
|
185
|
-
- avoid reviewer-driven overbuilding
|
|
106
|
+
- interaction, simulation, and omission must be deliberate and truthful
|
|
107
|
+
- if a rule cannot be shown faithfully, declare the gap in `result.md`
|
|
108
|
+
- avoid reviewer-driven overbuilding that adds decorative or speculative complexity without improving requirement understanding
|
|
186
109
|
|
|
187
110
|
4. `Implementation readiness for AI coding`
|
|
188
|
-
- the artifact set must give downstream AI coding enough rule context
|
|
189
|
-
- `result.md`
|
|
190
|
-
|
|
191
|
-
5. `UI
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
111
|
+
- the artifact set must give downstream AI coding enough rule context and guardrails to avoid major guessing
|
|
112
|
+
- `result.md` must supplement the prototype where interaction alone is insufficient
|
|
113
|
+
|
|
114
|
+
5. `UI fidelity and panel visibility`
|
|
115
|
+
- use screenshots, diagrams, layout cues, and structural hints from the source as first-priority guidance when present
|
|
116
|
+
- the prototype should read as product UI, not a delivery brief or review console
|
|
117
|
+
- every core panel must stay visibly populated and reviewable after each revision
|
|
118
|
+
- for `Represented Interactively` modules, intended visual carriers must remain materially visible
|
|
119
|
+
- charts still need visible bars, lines, points, or equivalent graphical carriers
|
|
120
|
+
- product-facing explanatory regions defined by the source UI must not collapse into thin placeholder copy
|
|
121
|
+
- if one fix makes another panel visually blank, materially thinner, or harder to interpret, treat that as a new blocking regression
|
|
122
|
+
|
|
123
|
+
6. `Artifact consistency and regression control`
|
|
124
|
+
- `prototype.html` and `result.md` must agree on key rules, limitations, and truth status
|
|
125
|
+
- later rounds must re-check the whole accepted surface, not only the previous `Must Fix` list
|
|
126
|
+
- explicitly check for newly blank panels, invisible graph content, materially weakened product-facing explanatory regions, and regressions where a previously acceptable panel becomes weaker after a later fix
|
|
127
|
+
- record material regressions under `New Regression Since Previous Round`
|
|
128
|
+
- prefer `Prototype Partial` over further churn when the next revision would mainly add complexity, speculative branches, or visual clutter without improving requirement truth
|
|
129
|
+
|
|
130
|
+
## Builder response to review
|
|
131
|
+
After each review round, the builder must:
|
|
132
|
+
- read the full reviewer output
|
|
133
|
+
- revise the prototype and companion artifacts when `Must Fix Before Complete` findings exist
|
|
134
|
+
- preserve unresolved but non-blocking findings in `result.md` when closure remains partial
|
|
135
|
+
- run a full core-panel self-check before requesting the next review, not only a point fix for the previous `Must Fix`
|
|
136
|
+
- prefer downgrade over another revise round when the next change would require speculative invention, materially larger scope, or a noisier prototype that reduces reviewability
|
|
137
|
+
- write a concise handoff into `review-log.md` containing what changed, what stayed unchanged, and why the next review should or should not still expect a gap
|
|
213
138
|
|
|
214
139
|
## Closure policy
|
|
215
140
|
- decide closure only after the final review round
|
|
@@ -234,41 +159,14 @@ The reviewer must evaluate the prototype against these principles in order:
|
|
|
234
159
|
|
|
235
160
|
## Prototype standard
|
|
236
161
|
- `prototype.html` is the main review artifact
|
|
162
|
+
- `prototype.html` is not the place for delivery portal content or truth-status summaries
|
|
237
163
|
- the prototype must make the main user flow inspectable
|
|
238
164
|
- prefer depth on the core path over shallow breadth
|
|
239
165
|
- support meaningful review actions such as navigation, state changes, or key transitions
|
|
240
|
-
- keep the prototype understandable when annotations are hidden or minimized
|
|
241
166
|
- keep core panels visibly reviewable across revisions
|
|
242
167
|
- do not count a panel as interactively represented when its main carrier is visually missing, nearly invisible, or replaced by bare labels only
|
|
243
168
|
- if the accepted scope includes charted data, preserve visible graphical expression rather than text-only scaffolding
|
|
244
169
|
|
|
245
|
-
## Annotation standard
|
|
246
|
-
- use a dedicated review mode when annotation density would otherwise disrupt normal reading
|
|
247
|
-
- keep review-only controls secondary, collapsible, or minimized
|
|
248
|
-
- assign stable target ids
|
|
249
|
-
- recommended target attribute: `data-pm-target="<id>"`
|
|
250
|
-
- recommended annotation attribute: `data-pm-annotation="<id>"`
|
|
251
|
-
- each annotation should have one primary target whenever possible
|
|
252
|
-
- clicking an annotation should focus its target; clicking a target affordance should reveal the linked annotation
|
|
253
|
-
- use stronger linkage such as numbered mapping or connector lines only when it improves readability
|
|
254
|
-
|
|
255
|
-
### Truth semantics
|
|
256
|
-
- `Confirmed`: faithful to the source requirement
|
|
257
|
-
- `Simulated`: represented approximately for review
|
|
258
|
-
- `Open Question`: unresolved and review-relevant
|
|
259
|
-
|
|
260
|
-
### Good annotation targets
|
|
261
|
-
- server-side rules that materially affect UX
|
|
262
|
-
- formulas, thresholds, ordering, permissions, and gating
|
|
263
|
-
- approximations that could be mistaken as final behavior
|
|
264
|
-
- unresolved behavior reviewers must notice
|
|
265
|
-
|
|
266
|
-
### Bad annotation targets
|
|
267
|
-
- long PRD excerpts without interpretation
|
|
268
|
-
- screen facts already obvious from the UI
|
|
269
|
-
- visual design commentary with no product impact
|
|
270
|
-
- missing core flows that should have been prototyped directly
|
|
271
|
-
|
|
272
170
|
## Runtime result contract
|
|
273
171
|
- return exactly one runtime JSON object
|
|
274
172
|
- normal completion and analysis-only closure both return `completed`
|
|
@@ -287,10 +185,10 @@ The reviewer must evaluate the prototype against these principles in order:
|
|
|
287
185
|
## Artifact contract
|
|
288
186
|
- always generate `result.md` on normal completion
|
|
289
187
|
- generate `prototype.html` for `Prototype Complete` and `Prototype Partial`
|
|
290
|
-
- generate `annotations.json` whenever `prototype.html` is generated
|
|
291
188
|
- generate `review-log.md` when the PM review loop ran
|
|
292
189
|
- use repository-independent artifact paths
|
|
293
190
|
- `result.md` is the only framework-required result artifact
|
|
191
|
+
- put scope boundaries, exclusions, simulations, assumptions, truth-status notes, and open questions in `result.md`, not in the default prototype page
|
|
294
192
|
- task-private files are optional and must support review directly
|
|
295
193
|
|
|
296
194
|
## Feishu delivery document
|
|
@@ -298,7 +196,6 @@ The reviewer must evaluate the prototype against these principles in order:
|
|
|
298
196
|
- treat the Feishu delivery document as a delivery portal, not as a second PRD
|
|
299
197
|
- detailed interaction belongs in `prototype.html`
|
|
300
198
|
- rule supplements belong in `result.md`
|
|
301
|
-
- structured annotation handoff belongs in `annotations.json`
|
|
302
199
|
|
|
303
200
|
### Required structure
|
|
304
201
|
1. `需求文档`
|
|
@@ -309,95 +206,6 @@ The reviewer must evaluate the prototype against these principles in order:
|
|
|
309
206
|
- keep artifact purpose attached to the artifact itself
|
|
310
207
|
- do not duplicate artifact content in the delivery document
|
|
311
208
|
|
|
312
|
-
## `annotations.json` contract
|
|
313
|
-
- purpose: machine-readable export of anchored review annotations
|
|
314
|
-
- paired artifact: normally `prototype.html`
|
|
315
|
-
- top-level fields:
|
|
316
|
-
- `version`
|
|
317
|
-
- `artifact`
|
|
318
|
-
- `annotations`
|
|
319
|
-
- `annotations` may be empty, but must exist when the file is generated
|
|
320
|
-
|
|
321
|
-
### Each annotation record must include
|
|
322
|
-
- `id`
|
|
323
|
-
- `target`
|
|
324
|
-
- `type`
|
|
325
|
-
- `status`
|
|
326
|
-
- `priority`
|
|
327
|
-
- `title`
|
|
328
|
-
- `content`
|
|
329
|
-
|
|
330
|
-
### `target` must include
|
|
331
|
-
- `elementId`
|
|
332
|
-
- optional `page`
|
|
333
|
-
- optional `anchor`: `top` | `right` | `bottom` | `left` | `inline` | `state`
|
|
334
|
-
|
|
335
|
-
### Recommended enums
|
|
336
|
-
- `type`:
|
|
337
|
-
- `interaction`
|
|
338
|
-
- `state`
|
|
339
|
-
- `calculation`
|
|
340
|
-
- `data_rule`
|
|
341
|
-
- `edge_case`
|
|
342
|
-
- `empty_state`
|
|
343
|
-
- `error_state`
|
|
344
|
-
- `permission`
|
|
345
|
-
- `out_of_scope`
|
|
346
|
-
- `open_question`
|
|
347
|
-
- `status`:
|
|
348
|
-
- `confirmed`
|
|
349
|
-
- `assumption`
|
|
350
|
-
- `simulated`
|
|
351
|
-
- `open_question`
|
|
352
|
-
- `priority`:
|
|
353
|
-
- `high`
|
|
354
|
-
- `medium`
|
|
355
|
-
- `low`
|
|
356
|
-
|
|
357
|
-
### Optional fields
|
|
358
|
-
- `secondaryTargets`
|
|
359
|
-
- `structured`
|
|
360
|
-
- `sourceRefs`
|
|
361
|
-
- `implementationImpact`
|
|
362
|
-
- `reviewerNote`
|
|
363
|
-
|
|
364
|
-
### Generation rules
|
|
365
|
-
- create one record per review-meaningful annotation, not per DOM node
|
|
366
|
-
- if a rule is represented via annotation in the requirement map, it must appear here
|
|
367
|
-
- keep truth status aligned with the prototype
|
|
368
|
-
- use `structured` when formulas, state keys, limits, or forbidden interpretations matter
|
|
369
|
-
|
|
370
|
-
### Example
|
|
371
|
-
```json
|
|
372
|
-
{
|
|
373
|
-
"version": "1.0",
|
|
374
|
-
"artifact": "prototype.html",
|
|
375
|
-
"annotations": [
|
|
376
|
-
{
|
|
377
|
-
"id": "ann-load-rate-all-rule",
|
|
378
|
-
"target": {
|
|
379
|
-
"page": "power-dashboard",
|
|
380
|
-
"elementId": "load-rate-trend-chart",
|
|
381
|
-
"anchor": "right"
|
|
382
|
-
},
|
|
383
|
-
"type": "calculation",
|
|
384
|
-
"status": "confirmed",
|
|
385
|
-
"priority": "high",
|
|
386
|
-
"title": "All Load Rate calculation rule",
|
|
387
|
-
"content": "All Load Rate must be calculated as total power divided by total capacity. Average-based calculation is not allowed.",
|
|
388
|
-
"structured": {
|
|
389
|
-
"formula": "sum(room.power) / sum(room.capacity) * 100%",
|
|
390
|
-
"forbiddenFormula": "avg(room.loadRate)"
|
|
391
|
-
},
|
|
392
|
-
"implementationImpact": "Affects trend aggregation logic, KPI cards, and chart tooltip consistency.",
|
|
393
|
-
"sourceRefs": [
|
|
394
|
-
"Load Rate Trend > All view"
|
|
395
|
-
]
|
|
396
|
-
}
|
|
397
|
-
]
|
|
398
|
-
}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
209
|
## `result.md` contract
|
|
402
210
|
Keep `result.md` dense, implementation-oriented, and in Chinese unless the task explicitly requires another language.
|
|
403
211
|
|
|
@@ -438,7 +246,7 @@ Keep `result.md` dense, implementation-oriented, and in Chinese unless the task
|
|
|
438
246
|
|
|
439
247
|
# 闭环判定
|
|
440
248
|
- Closure Level:Prototype Partial
|
|
441
|
-
- 判定依据:核心路径可评审,但历史场景下 Power
|
|
249
|
+
- 判定依据:核心路径可评审,但历史场景下 Power 统计口径仍未明确,且部分规则仍未能通过交互完全表达。
|
|
442
250
|
- 主要剩余问题:历史 Power KPI 的精确定义仍是 Open Question。
|
|
443
251
|
```
|
|
444
252
|
|
|
@@ -462,13 +270,13 @@ Keep `result.md` dense, implementation-oriented, and in Chinese unless the task
|
|
|
462
270
|
## Round 1
|
|
463
271
|
- Reviewer Verdict: Must Fix Before Complete
|
|
464
272
|
- Must Fix:
|
|
465
|
-
- `All Load Rate` 计算口径未在原型或
|
|
273
|
+
- `All Load Rate` 计算口径未在原型或 `result.md` 中明确。
|
|
466
274
|
- Can Ship As Partial:
|
|
467
275
|
- 历史 Power KPI 口径仍可暂时保留为开放问题。
|
|
468
276
|
- Open Questions:
|
|
469
277
|
- `Last 90 Days` 聚合粒度是否按月展示仍待确认。
|
|
470
278
|
- Builder Action:
|
|
471
|
-
-
|
|
279
|
+
- 补强原型交互表达,并在 `result.md` 中补充规则说明。
|
|
472
280
|
```
|
|
473
281
|
|
|
474
282
|
## Final self-check
|
|
@@ -477,7 +285,6 @@ Keep `result.md` dense, implementation-oriented, and in Chinese unless the task
|
|
|
477
285
|
- final closure matches the last reviewer verdict
|
|
478
286
|
- every material key rule has a declared representation mode
|
|
479
287
|
- any remaining downgraded or missing behavior is disclosed in `result.md`
|
|
480
|
-
- `annotations.json` matches the actual annotation layer in `prototype.html`
|
|
481
288
|
- `result.md` contains no delivery-index or artifact-list sections
|
|
482
289
|
- source facts are preserved or deviations are explicitly declared
|
|
483
290
|
- sample data is not presented as source truth
|