Skip to content

Commit 2b96f4a

Browse files
committed
Harden UI functional capability coverage
1 parent 9ffeaa3 commit 2b96f4a

49 files changed

Lines changed: 2875 additions & 110 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/flowguard-model-miss-review/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: flowguard-model-miss-review
3-
description: Use for non-trivial bug repairs or when runtime, tests, replay, logs, manual validation, or production evidence fails after FlowGuard modeling passed. Triggers include model miss, false confidence, boundary missing, state too coarse, input branch missing, invariant too weak, evidence overclaimed, root-cause backpropagation, or needing a generalized bad case after a real failure.
3+
description: Use when runtime, tests, replay, logs, manual validation, or production evidence fails after FlowGuard passed. Triggers include model miss, false confidence, boundary missing, state too coarse, input branch missing, invariant too weak, evidence overclaimed, root-cause backpropagation, or generalized bad case.
44
---
55

66
# FlowGuard Model Miss Review
@@ -12,15 +12,15 @@ the model, code contract, tests, or final claim is too narrow. Return to
1212
## First Read
1313

1414
- Route id: `model_miss_review`.
15-
- Entry: `ROUTE_STARTER_API["model_miss_review"]`, `model-miss-template`, or `model-miss-full-template`.
15+
- Entry: `ROUTE_STARTER_API["model_miss_review"]`, `model-miss-template`, or full variant.
1616
- Concepts: observed failure, same-class bad case, `boundary_missing`, root-cause backpropagation, owner code contract, old-path/field disposition, defect-family gate, maturation.
1717
- Reference: `references/model_miss_protocol.md`.
1818

1919
## Hard Gates
2020

2121
- Verify the real package, keep AGENTS.md managed records current, and do not create a fake mini-framework.
2222
- A user-observed UI failure after a green claim is a model miss, not a local button-only cleanup.
23-
- UI misses preserve previous claim/reason, real failure, affected controls/fields, same-class controls/fields, task-flow, affordance/action/dialog/focus gaps, tests/evidence, backpropagation, and code owner.
23+
- UI misses preserve previous claim/reason, failure, affected and same-class capabilities/controls/fields, task/affordance/dialog/focus gaps, tests/evidence, backpropagation, and code owner.
2424
- The observed bug instance and bug-class responsibility are separate.
2525
- Root cause, model obligation, owner code contract, observed test, and same-class test must bind to the same repaired behavior before broad closure.
2626
- Old, fallback, compatibility, alternate paths, and field misses need disposition/projection instead of accidental reachability.
@@ -31,7 +31,7 @@ the model, code contract, tests, or final claim is too narrow. Return to
3131

3232
1. Run existing-model preflight when the bug is inside a modeled system.
3333
2. Classify the miss, preserve observed evidence, and backpropagate root cause into the plan/model/test gap.
34-
3. For UI misses, run `review_ui_model_misses()` and scan same-class controls or fields before fixing only the observed control.
34+
3. For UI misses, run `review_ui_model_misses()` and scan same-class capabilities, controls, or fields before fixing only the observed control.
3535
4. Add or name one same-class generalized bad case when practical.
3636
5. Update the model or FieldLifecycleMesh and bind the owner code contract.
3737
6. Add observed-regression and same-class evidence, then rerun alignment, disposition, mesh/reattachment, maturation, process freshness, and risk ledger gates as relevant.

.agents/skills/flowguard-model-miss-review/references/model_miss_protocol.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ not close a known model miss unless the miss has been reviewed.
1111
If a user opens a UI after a green FlowGuard claim and the visible behavior is
1212
wrong, treat the episode as a model miss. Typical UI miss types are
1313
`evidence_overclaimed` when the prior proof only showed a label or API route,
14-
and `boundary_missing` when the prior model did not account for the visible
15-
control, field, source-interaction branch, task flow, human-operability rule, or UI state
16-
update.
14+
and `boundary_missing` when the prior model did not account for the promised
15+
capability, visible control, field, source-interaction branch, task flow,
16+
human-operability rule, or UI state update.
1717

1818
For bug repair work inside an existing modeled system, run Existing Model
1919
Preflight first so the fix extends the current model boundary instead of
@@ -42,10 +42,14 @@ creating a parallel one.
4242
6. Add one same-class generalized bad case when practical.
4343
7. For UI misses, run `review_ui_model_misses(...)` with a record of the prior
4444
green claim, why it looked green, the user-observed failure, affected
45-
controls/fields, same-class controls/fields, same-class tests or click
46-
evidence, task-flow/human-operability gaps, root-cause backpropagation, and
47-
code owner. Select/Open txt/Load table/Load File style failures should be
48-
reviewed as a same-class UI family before closure.
45+
capabilities/controls/fields, same-class capabilities/controls/fields,
46+
same-class tests or click evidence, task-flow/human-operability gaps,
47+
root-cause backpropagation, and code owner. Missing promised UI
48+
capabilities must be listed in `missing_promised_capability_ids`, also
49+
listed as affected capabilities, and classified as `boundary_missing` or
50+
`evidence_overclaimed`. Same-shape missing load, render, plot, refresh,
51+
export, save, open, configure, delete, or generated-output functions should
52+
be reviewed as a same-class UI family before closure.
4953
8. Add current test evidence for the observed regression and for the
5054
same-class generalized case. A point regression is necessary but does not
5155
close an in-scope miss by itself.

.agents/skills/flowguard-ui-flow-structure/SKILL.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,27 @@ description: Use for UI behavior, visible surface, human-operability, and eviden
55

66
# FlowGuard UI Flow Structure
77

8-
Standalone FlowGuard satellite skill for UI states, text, journeys,
9-
human-operability, structure, runnable evidence. Return to
10-
`model-first-function-flow` when non-UI.
8+
Standalone FlowGuard satellite skill for UI states, journeys, human-operability, structure, and evidence. Return to `model-first-function-flow` when non-UI.
119

1210
## First Read
1311

1412
- Route id: `ui_flow_structure`.
15-
- Starter: `ROUTE_STARTER_API["ui_flow_structure"]`; templates: `ui-flow-structure-template`, `ui-flow-structure-full-template`.
13+
- Starter: `ROUTE_STARTER_API["ui_flow_structure"]`; templates: compact/full.
1614
- Shape: UI event x UI state -> controls, displays, overlays, recovery, feedback.
17-
- Helpers: inventory, model, Visible surface, journey, task/human, implementation validation, render/geometry, text hierarchy.
15+
- Helpers: inventory, capability coverage, model, Visible surface, journey, task/human, implementation, render/geometry, text.
1816
- Reference: `references/ui_flow_structure_protocol.md`.
1917

2018
## Hard Gates
2119

2220
- Verify real package and AGENTS.md managed records; no fake mini-framework.
23-
- Work mode comes first: `greenfield`, `source_based`, or `mixed`. Source-based/mixed need source baseline -> target mapping -> observed-source alignment; greenfield invents no source.
24-
- Existing/runnable UI: real Visible surface inventory is first. Map observed buttons, inputs, selects, tables, fields, status, dialogs, regions, menus, toolbars to model owner or blindspot.
25-
- Every reachable enabled action needs visible-control -> event -> code owner -> backend/local/native function -> UI state update -> click/test evidence. Label proof is not enough.
26-
- Every supported task needs task path, primary control, chain, feedback, cancel/error, keyboard/focus, walkthrough, and human-operable affordance/grammar/region/dialog behavior.
27-
- Source-based scopes need generic source branches: picker, external open, dialog, no-handler, trigger/confirm/cancel/value/result/error, and approved differences.
28-
- UI complete/runnable/button-wired claims need `UIImplementationValidation`; screenshot, DOM text, native/manual checks need evidence kind, event, result, ref, boundary.
29-
- Visible branches, recovery/cancel, ownership, calm typography guidance, and blindspots stay explicit.
21+
- Work mode first: `greenfield`, `source_based`, or `mixed`; source-based/mixed need baseline -> mapping -> observed alignment.
22+
- Existing/runnable UI: observed surface is first. Map visible controls, fields, status, dialogs, menus, toolbars, and regions to owner or blindspot.
23+
- Non-trivial UI or complete/runnable/function claims need `UIFunctionalCapabilityInventory` plus `review_ui_functional_capability_coverage`: required capability -> feature, task, UI path, owner/chain, output, evidence or scoped blindspot.
24+
- Each reachable enabled action needs visible-control -> event -> owner -> backend/local/native function -> UI state update -> click/test evidence. Label proof is not enough.
25+
- Supported tasks need path, primary control, chain, feedback, cancel/error, keyboard/focus, walkthrough, and affordance/grammar/region/dialog behavior.
26+
- Source-based scopes need generic source branches and approved differences.
27+
- Complete/runnable/button-wired claims need `UIImplementationValidation` with evidence kind such as screenshot/DOM text, event, result, ref, and boundary.
28+
- Branches, recovery/cancel, ownership, typography guidance, and blindspots stay explicit.
3029
- Broad transition-test claims need owner cells, then MTA or TestMesh.
3130
- New/deepened UI models need harvest closure before broad claims.
3231

@@ -36,12 +35,13 @@ human-operability, structure, runnable evidence. Return to
3635
2. Inventory real UI surface when it exists or runs.
3736
3. For source-based/mixed scope, inventory source, map target differences, and align observed UI.
3837
4. Model states, events, controls, displays, overlays, transitions, availability.
39-
5. Review visible surface, chains, source branches, duplicates, blindspots.
40-
6. Add task coverage and human-operability evidence.
41-
7. Derive regions, controls, text hierarchy, calm typography guidance.
42-
8. Add journey, evidence-kind, geometry, transition-cell, and implementation validation as needed.
38+
5. Add capability coverage: required capabilities, scoped gaps, outputs, and bindings to feature/task/UI path/owner/evidence.
39+
6. Review visible surface, chains, source branches, duplicates, blindspots.
40+
7. Add task coverage and human-operability evidence.
41+
8. Derive regions, controls, text hierarchy, calm typography guidance.
42+
9. Add journey, evidence-kind, geometry, transition-cell, and implementation validation as needed.
4343

44-
Snapshot: UI state diagram with controls, tasks, visible surface, recovery, text ownership, evidence kinds, and blindspots.
44+
Snapshot: UI state diagram with controls, capabilities, tasks, visible surface, recovery, text ownership, evidence, blindspots.
4545

4646
## Non-Goals
4747

.agents/skills/flowguard-ui-flow-structure/references/ui_flow_structure_protocol.md

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ grounded in user tasks, target UI intent, observed UI, functional chains, and
77
implementation evidence. Source-based and mixed work must also build a source
88
baseline, target mapping, approved-difference ledger, and observed-source
99
alignment. After work-mode routing, the route has model/design stages for
10-
complete app-level UI claims: build or review a UI interaction model, review
11-
visible UI surface, review launch-to-terminal journey coverage, derive UI
10+
complete app-level UI claims: account required user-visible functional
11+
capabilities, build or review a UI interaction model, review visible UI
12+
surface, review launch-to-terminal journey coverage, derive UI
1213
structure from that model, then derive a UI text hierarchy blueprint from the
1314
reviewed structure. It has a later implementation-evidence stage only when the
1415
agent claims the running UI is implemented, runnable, or complete. Local
@@ -49,6 +50,10 @@ Use UI Flow Structure when:
4950
- the UI already exists or can run, and the agent needs to account the real
5051
visible buttons, inputs, dropdowns, tables, displayed fields, status text,
5152
dialogs, and regions before claiming the model covers it.
53+
- the UI is supposed to provide user-visible functions such as load, plot,
54+
render, refresh, export, save, delete, search, configure, generate, or open,
55+
and those functions must be checked before the visual/control model can be
56+
called complete.
5257
- the UI may technically be wired but still confusing to a human, so supported
5358
user-visible features must be covered by task frames, primary controls,
5459
action grammar, region semantics, dialog/window return semantics,
@@ -64,6 +69,9 @@ Collect the lightest fit-for-risk UI evidence:
6469
- UI work mode: `greenfield`, `source_based`, or `mixed`, including which
6570
scope ids are greenfield and which are source-based;
6671
- product goal and user workflow;
72+
- required user-visible capability inventory from the product goal, user task
73+
list, source authority, or accepted scope; for greenfield work this comes
74+
from intended user tasks, not from a source baseline;
6775
- source authority inventory when work is source-based or mixed, such as an
6876
existing app, prototype, design file, screenshot, product spec, customer
6977
workflow, manual observation, runtime observation, or other declared source;
@@ -90,6 +98,8 @@ Collect the lightest fit-for-risk UI evidence:
9098
error, recovery, validation, and success text when available;
9199
- user-visible feature contracts from the product or functional model when an
92100
implemented/runnable UI claim is made;
101+
- capability-to-feature/task/journey/control/event/function/evidence bindings,
102+
plus output contracts for result-producing capabilities;
93103
- user task inventory: every supported feature, every task a user can perform,
94104
task-to-feature links, UI path links, primary controls, required feedback,
95105
cancel/error behavior, keyboard/focus expectations, and scoped-out tasks;
@@ -135,6 +145,46 @@ Known-bad hazards:
135145
- an enabled visible control is treated as covered because its label matches;
136146
- a blindspot has no owner, reason, or follow-up validation boundary.
137147

148+
## Stage 0A: Functional Capability Coverage
149+
150+
For non-trivial UI work, or whenever an agent claims the UI is implemented,
151+
runnable, complete, button-wired, or covers user-visible functionality, build a
152+
`UIFunctionalCapabilityInventory` before broad UI confidence. This applies to
153+
greenfield, source-based, and mixed UI work. Source-based work may populate the
154+
inventory from a declared source authority; greenfield work populates it from
155+
accepted user tasks and product scope.
156+
157+
Use `UIFunctionalCapabilityInventory`, `UIFunctionalCapability`,
158+
`UICapabilityOutputContract`, `UICapabilityCoverageBinding`, and
159+
`review_ui_functional_capability_coverage(...)` when the package API is
160+
available.
161+
162+
Each required user-visible capability must map to:
163+
164+
- a `UIFeatureContract`;
165+
- a `UIUserTaskFrame` or task ledger entry;
166+
- a UI journey, visible control, or modeled event;
167+
- a functional chain, code owner, code contract, implementation run, or test
168+
evidence;
169+
- an output contract when the capability produces visible/result state such as
170+
a chart, table, file, generated artifact, saved item, refreshed list, status
171+
update, navigation result, or deletion result.
172+
173+
If a capability is intentionally out of scope, deferred, blocked, manual-only,
174+
or pure UI-only, the row must state owner, reason, validation boundary, and
175+
rationale. Empty scoped-out lists do not satisfy completeness.
176+
177+
Known-bad hazards:
178+
179+
- the UI has a button inventory but no inventory of what functions the user
180+
actually needs to perform;
181+
- a result-producing capability only proves that a button or API route exists;
182+
- a chart/table/file/status result is visible as a container but has no output
183+
assertion or evidence;
184+
- a greenfield UI invents a small task list and silently omits other accepted
185+
user functions;
186+
- a source-based UI preserves labels while losing source workflow semantics.
187+
138188
## Stage 1: UI Interaction Model
139189

140190
Represent the UI as:

.flowguard/project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[flowguard]
22
repository = "https://github.com/liuyingxuvka/FlowGuard"
3-
adopted_package_version = "0.47.1"
3+
adopted_package_version = "0.47.2"
44
schema_version = "1.0"
55
last_verified_at = "2026-06-13T09:56:24+00:00"
66
last_verified_by = "FlowGuard project-upgrade"

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## v0.47.2 - 2026-06-13
4+
5+
UI functional capability coverage.
6+
7+
- Added UI functional capability inventories, capability/output contracts,
8+
capability bindings, and coverage review so required user-visible UI
9+
functions cannot disappear before broad UI completion claims.
10+
- Wired capability coverage into implementation validation, human-operability,
11+
PlanDetailing, Model-Miss Review, DevelopmentProcessFlow, RiskEvidenceLedger,
12+
AgentWorkflowRehearsal, and ClosureContract without creating a parallel UI
13+
route.
14+
- Updated UI skills, public templates, docs, API/field inventory, OpenSpec
15+
artifacts, and regression tests so greenfield, source-based, and mixed UI
16+
work use the same generic capability layer.
17+
318
## v0.47.1 - 2026-06-13
419

520
Plan discussion handoff hardening.

0 commit comments

Comments
 (0)