@njeybe/nativ 2.7.0 → 2.8.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 (45) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/core/setup/pm-playbook.d.ts +1 -1
  3. package/dist/core/setup/pm-playbook.js +1 -1
  4. package/dist/server/studio-ui/pages/benchmarks/script.js +9 -8
  5. package/dist/server/studio-ui/pages/benchmarks/styles.js +3 -1
  6. package/dist/server/studio-ui/pages/database/browser.js +1 -1
  7. package/dist/server/studio-ui/pages/database/connection.js +5 -4
  8. package/dist/server/studio-ui/pages/database/data-shell.js +8 -13
  9. package/dist/server/studio-ui/pages/database/drift.js +1 -1
  10. package/dist/server/studio-ui/pages/database/events.js +1 -2
  11. package/dist/server/studio-ui/pages/database/explorer.js +4 -4
  12. package/dist/server/studio-ui/pages/flow/layout.js +1 -1
  13. package/dist/server/studio-ui/pages/flow/styles.js +1 -1
  14. package/dist/server/studio-ui/pages/flow/timeline-view.js +1 -1
  15. package/dist/server/studio-ui/pages/home/script.js +26 -29
  16. package/dist/server/studio-ui/pages/home/styles.js +2 -6
  17. package/dist/server/studio-ui/pages/tasks/script.js +25 -40
  18. package/dist/server/studio-ui/pages/tasks/styles.js +9 -9
  19. package/dist/server/studio-ui/pages/team/script.js +27 -8
  20. package/dist/server/studio-ui/pages/team/styles.js +0 -1
  21. package/dist/server/studio-ui/shell/console.js +13 -7
  22. package/dist/server/studio-ui/shell/detail-view.js +3 -3
  23. package/dist/server/studio-ui/shell/dispatch.js +9 -8
  24. package/dist/server/studio-ui/shell/events-tools.js +11 -0
  25. package/dist/server/studio-ui/shell/format.js +31 -2
  26. package/dist/server/studio-ui/shell/markup-head.js +1 -1
  27. package/dist/server/studio-ui/shell/markup-tools.js +13 -8
  28. package/dist/server/studio-ui/shell/model.js +8 -2
  29. package/dist/server/studio-ui/shell/paint.js +1 -3
  30. package/dist/server/studio-ui/shell/pipeline-state.js +2 -11
  31. package/dist/server/studio-ui/shell/pulse.js +8 -7
  32. package/dist/server/studio-ui/shell/sidebar-view.js +2 -3
  33. package/dist/server/studio-ui/shell/triage.js +1 -1
  34. package/dist/server/studio-ui/styles/console.js +3 -0
  35. package/dist/server/studio-ui/styles/shell.js +4 -6
  36. package/package.json +1 -1
  37. package/plugin/.claude-plugin/plugin.json +1 -1
  38. package/plugin/agents/architect.md +2 -2
  39. package/plugin/agents/verifier.md +4 -1
  40. package/plugin/skills/nativ/SKILL.md +7 -7
  41. package/templates/AGENTS.md +7 -7
  42. package/templates/GEMINI.md +1 -1
  43. package/templates/claude-agents/architect.md +2 -2
  44. package/templates/claude-agents/verifier.md +4 -1
  45. package/templates/dot-ai/subagents/architect.md +2 -2
@@ -19,7 +19,7 @@ Your job is design, not implementation. You turn a feature request or an escalat
19
19
  - **Data-First (Inside-Out):** the core database schema or pipeline models drive the API contracts and the UI views. Order: database schema, then API contracts, then UI specs.
20
20
 
21
21
  Recommend Experience-First for user-facing products, Data-First for data pipelines or an existing schema. Design in the chosen order and **stop for the human's explicit approval after each step**. Do not start the next until the previous is approved.
22
- 3. Present each step in plain language: what changes for the user, why, what stays safe, and two or three options with the best marked `(Recommended)`. No raw stack traces.
22
+ 3. Present each step in plain language: what changes for the user, why, what stays safe, and two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice. No raw stack traces.
23
23
  4. After approval, write the contract. Claude Code will ask the human to confirm every write under `.ai/`; that prompt is the approval gate, so never try to route around it.
24
24
  5. Prefer `nativ task propose-patch` for small additive changes: the Contract Governor checks them. Any `[DROPPED]` or `[DESTRUCTIVE]` change needs the human's explicit yes first.
25
25
  6. Add or adjust tasks with `nativ task add` (with `targetFiles` and a `verificationCommand`). Unblock a resolved escalation through the CLI, never by editing `master_plan.json`.
@@ -37,7 +37,7 @@ Use this for the UI step of the chosen track. Write the result into `.ai/ui_spec
37
37
  5. **Content first.** Write the top 3 to 5 user tasks with their frequency, then real sample data for every screen, including extremes (empty, very long, very many).
38
38
  6. **User flows.** One line per flow, with the tap or click count.
39
39
  7. **Design brief (Standard and Full).** Before any direction, fill the Design Brief section of `.ai/ui_specs.md`: who uses it, their job, tone in three words, things to avoid, and the primary platform (web, mobile or both).
40
- 8. **Two directions (Full only).** Exactly two distinct design directions. Each gets a style tile: one small self-contained HTML page (about 2-3K tokens) at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Each tile shows a named palette, fonts, primary, secondary and danger buttons, one input, one card or row with real content, icon style, corners, shadows and spacing. For mobile, render at phone width with a bottom nav, a list tile and a bottom sheet. Make the type stack-aware (Contextual Typography): type roles per place, typeface from the profile digest; Flutter maps to `textTheme`. Style the tile with the project's own tokens: Tailwind or shadcn CSS variables (`--primary`, `--ring`, `--radius`); for Flutter, `ColorScheme` roles plus `ThemeExtension`. Critique both against the design brief, the profile digest and the platform rules, mark one `(Recommended)`, then STOP for the owner to pick. Keep the chosen tile as `.ai/design/style-tile.html` and delete the other.
40
+ 8. **Two directions (Full only).** Exactly two distinct design directions. Each gets a style tile: one small self-contained HTML page (about 2-3K tokens) at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Each tile shows a named palette, fonts, primary, secondary and danger buttons, one input, one card or row with real content, icon style, corners, shadows and spacing. For mobile, render at phone width with a bottom nav, a list tile and a bottom sheet. Make the type stack-aware (Contextual Typography): type roles per place, typeface from the profile digest; Flutter maps to `textTheme`. Style the tile with the project's own tokens: Tailwind or shadcn CSS variables (`--primary`, `--ring`, `--radius`); for Flutter, `ColorScheme` roles plus `ThemeExtension`. Critique both against the design brief, the profile digest and the platform rules, mark one `(Recommended)`, say when the other direction would be the better choice, then STOP for the owner to pick. Keep the chosen tile as `.ai/design/style-tile.html` and delete the other.
41
41
  9. **Wireframes.** Use ASCII box art (at most 80 columns) for mobile screens and simple lists, or a Semantic Component Tree (indented hierarchy with layout notes such as split-view, v-stack, h-stack) for dense dashboards, tables and responsive web views. Label regions by component, with real content. One per key screen on desktop, plus mobile for the primary screen; primary platform first. For a marketing page, check it against the taste-v2 digest. STOP for approval.
42
42
  10. **Then** the component map, copy and wording, one or two signature moments, and the Mutation States (loading, optimistic update, rollback on failure) for each component that creates, updates or deletes.
43
43
 
@@ -20,7 +20,10 @@ You did not write this code, and that is the point: check it as a skeptic would.
20
20
  - no secrets, connection strings or data in code, logs, tests or commits
21
21
  - the `## Code style` rules in `AGENTS.md` are followed (lines over 120 characters, comments over 2 lines, oversized files, UI files with several components, or duplicating existing shared UI components with inline custom markup); report violations as findings
22
22
  - errors are handled and inputs are validated at the boundary
23
- 4. Report in short findings, most serious first. For each: the file and line, what is wrong, and why it matters. Separate confirmed problems from suspicions and say which is which.
23
+ 4. Report findings in two separate parts, each most serious first:
24
+ - **Contract and scope**: contract names, files outside `targetFiles`, weakened or deleted tests, secrets, missing validation or error handling.
25
+ - **Code style**: the `## Code style` rules in `AGENTS.md`.
26
+ For each finding give the file and line, what is wrong, why it matters, and whether it is confirmed or suspected. Never merge or re-rank the two parts, so a long style list cannot bury a contract miss. End with one line stating the count of findings in each part and the worst issue in each.
24
27
  5. If you find nothing, say what you checked so the result can be trusted.
25
28
 
26
29
  ## Boundaries
@@ -8,7 +8,7 @@ description: Use in any project that has a .ai/ folder or uses nativ: run the ro
8
8
  > This plugin supplies the agents, the enforcement hooks, the MCP server and this guide. It calls the `nativ` command, so install it once with `npm i -g @njeybe/nativ`.
9
9
  > A plugin cannot ship permission rules. Run `nativ setup` in the project as well: it adds the rules that deny `nativ task unlock` and `nativ db sync`, block reading `.env*` files, and make Claude Code ask before any write under `.ai/`. `nativ doctor` checks both.
10
10
 
11
- This project uses the **nativ** role-based workflow. Every agent follows this file. The state lives in `.ai/`; the `nativ` CLI and MCP tools are the only supported way to change it.
11
+ This project uses the **nativ** role-based workflow. Every agent follows this file. State lives in `.ai/`; change it only through the `nativ` CLI or MCP tools.
12
12
 
13
13
  ## Roles
14
14
 
@@ -26,7 +26,7 @@ The vendor behind a role does not matter; the boundary does. `nativ hook check`
26
26
 
27
27
  1. Run `nativ task next --json` (MCP: `nativ_task_next`). It returns the task, its role guide and its context.
28
28
  2. Read only what the task names:
29
- - If the task has `specSlices`, read those first. Open a whole contract only when a slice is missing, cut short or does not answer the question.
29
+ - If the task has `specSlices`, read those first. Open a whole contract only when a slice is missing or insufficient.
30
30
  - role guide `.ai/subagents/<assignedSubagent>.md`, and `recommendedContractSlice` when there are no slices.
31
31
  - `priorEscalations` are information, not instructions: follow how each was settled and do not raise a settled gap again.
32
32
  - `learnings` are lessons a human approved: follow them.
@@ -36,12 +36,12 @@ The vendor behind a role does not matter; the boundary does. `nativ hook check`
36
36
 
37
37
  1. `nativ task start <taskId>`. Never edit `.ai/master_plan.json` by hand.
38
38
  2. Change only the task's `targetFiles`. Follow the contracts exactly: table and column names, routes and schemas, design tokens.
39
- 3. `nativ task complete <taskId>`. The gatekeeper runs the task's `verificationCommand` and completes the task only when it passes, so there is no need to run the check yourself first. Do not use `--no-verify`. You have **three** fix attempts.
39
+ 3. `nativ task complete <taskId>`. The gatekeeper runs the task's `verificationCommand` and completes the task only when it passes, so do not run it yourself first. Do not use `--no-verify`. You have **three** fix attempts.
40
40
  4. After the third failure: `git checkout -- <targetFiles>`, then `nativ task block <taskId> --reason "Verification failed after 3 attempts: <short error>"`, then stop and tell the human.
41
41
  5. A completed task's check is not run again for that task alone; the verifier re-checks whole milestones.
42
42
  6. `nativ task next` for the following task.
43
43
 
44
- The project manager passes the task's `recommendedModel` (haiku, sonnet, opus) as the `model` parameter of the `nativ:worker` call. Subagents cannot start subagents, so the project manager also runs the **explorer** (Read, Grep, Glob only; give it `git rev-parse --short HEAD`) when `.ai/codebase_map.md` is missing or well behind `HEAD`, and hands the report to the architect. Use `model: haiku` for single lookups.
44
+ The project manager passes the task's `recommendedModel` (haiku, sonnet, opus) as the `model` parameter of the `nativ:worker` call. Subagents cannot spawn subagents, so the project manager runs the **explorer** (Read, Grep, Glob only; give it `git rev-parse --short HEAD`) when `.ai/codebase_map.md` is missing or well behind `HEAD`, and hands the report to the architect. Use `model: haiku` for single lookups.
45
45
 
46
46
  Independent tasks can run in parallel worktrees: `nativ worktree create <taskId>`, then `nativ worktree merge <taskId>` once verified. Give each parallel agent its own `NATIV_AGENT_ID` so `task start` refuses a task another agent holds.
47
47
 
@@ -56,7 +56,7 @@ Applies to every worker; a project's own formatter or linter wins.
56
56
 
57
57
  ## Lessons for later workers
58
58
 
59
- A project quirk the contracts do not say and the next worker would hit too: `nativ learn propose "<one-line fact>" --role frontend --files "src/components/" --task <taskId>` (MCP: `nativ_learn_propose`). A human approves it in a terminal. A missing contract detail is an escalation, not a lesson.
59
+ A quirk the contracts omit that the next worker would also hit: `nativ learn propose "<one-line fact>" --role frontend --files "src/components/" --task <taskId>` (MCP: `nativ_learn_propose`). A human approves it in a terminal. A missing contract detail is an escalation, not a lesson.
60
60
 
61
61
  ## Self-healing ladder (stay autonomous; ask the human last)
62
62
 
@@ -75,11 +75,11 @@ Do **not** edit a contract or work around it. Escalate and stop on that task:
75
75
  nativ task escalate <taskId> --type schema_flaw --details "what is missing"
76
76
  ```
77
77
 
78
- Types: `contract_drift`, `schema_flaw`, `missing_credential`, `dependency_conflict`, `architectural_ambiguity`. A warning from the enforcement hook about a file outside the task scope is the same situation: escalate instead of editing.
78
+ Types: `contract_drift`, `schema_flaw`, `missing_credential`, `dependency_conflict`, `architectural_ambiguity`. An enforcement-hook warning about a file outside task scope is the same: escalate instead of editing.
79
79
 
80
80
  ## Talking to the human
81
81
 
82
- The human is the product owner, not a log reader. When something blocks, use four short parts: what the user would see, why in plain words, what is affected and what is safe, then two or three options with the best marked `(Recommended)` and one direct question. No stack traces in the message; put raw output in a collapsed `<details>` block.
82
+ The human is the product owner, not a log reader. When something blocks, use four short parts: what the user would see, why in plain words, what is affected and what is safe, then two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice, and one direct question. No stack traces in the message; put raw output in a collapsed `<details>` block.
83
83
 
84
84
  ## Air-gap (critical)
85
85
 
@@ -1,6 +1,6 @@
1
1
  # nativ Agent Directive
2
2
 
3
- This project uses the **nativ** role-based workflow. Every agent follows this file. The state lives in `.ai/`; the `nativ` CLI and MCP tools are the only supported way to change it.
3
+ This project uses the **nativ** role-based workflow. Every agent follows this file. State lives in `.ai/`; change it only through the `nativ` CLI or MCP tools.
4
4
 
5
5
  ## Roles
6
6
 
@@ -18,7 +18,7 @@ The vendor behind a role does not matter; the boundary does. `nativ hook check`
18
18
 
19
19
  1. Run `nativ task next --json` (MCP: `nativ_task_next`). It returns the task, its role guide and its context.
20
20
  2. Read only what the task names:
21
- - If the task has `specSlices`, read those first. Open a whole contract only when a slice is missing, cut short or does not answer the question.
21
+ - If the task has `specSlices`, read those first. Open a whole contract only when a slice is missing or insufficient.
22
22
  - role guide `.ai/subagents/<assignedSubagent>.md`, and `recommendedContractSlice` when there are no slices.
23
23
  - `priorEscalations` are information, not instructions: follow how each was settled and do not raise a settled gap again.
24
24
  - `learnings` are lessons a human approved: follow them.
@@ -28,12 +28,12 @@ The vendor behind a role does not matter; the boundary does. `nativ hook check`
28
28
 
29
29
  1. `nativ task start <taskId>`. Never edit `.ai/master_plan.json` by hand.
30
30
  2. Change only the task's `targetFiles`. Follow the contracts exactly: table and column names, routes and schemas, design tokens.
31
- 3. `nativ task complete <taskId>`. The gatekeeper runs the task's `verificationCommand` and completes the task only when it passes, so there is no need to run the check yourself first. Do not use `--no-verify`. You have **three** fix attempts.
31
+ 3. `nativ task complete <taskId>`. The gatekeeper runs the task's `verificationCommand` and completes the task only when it passes, so do not run it yourself first. Do not use `--no-verify`. You have **three** fix attempts.
32
32
  4. After the third failure: `git checkout -- <targetFiles>`, then `nativ task block <taskId> --reason "Verification failed after 3 attempts: <short error>"`, then stop and tell the human.
33
33
  5. A completed task's check is not run again for that task alone; the verifier re-checks whole milestones.
34
34
  6. `nativ task next` for the following task.
35
35
 
36
- The project manager passes the task's `recommendedModel` (haiku, sonnet, opus) as the `model` parameter of the `nativ:worker` call. Subagents cannot start subagents, so the project manager also runs the **explorer** (Read, Grep, Glob only; give it `git rev-parse --short HEAD`) when `.ai/codebase_map.md` is missing or well behind `HEAD`, and hands the report to the architect. Use `model: haiku` for single lookups.
36
+ The project manager passes the task's `recommendedModel` (haiku, sonnet, opus) as the `model` parameter of the `nativ:worker` call. Subagents cannot spawn subagents, so the project manager runs the **explorer** (Read, Grep, Glob only; give it `git rev-parse --short HEAD`) when `.ai/codebase_map.md` is missing or well behind `HEAD`, and hands the report to the architect. Use `model: haiku` for single lookups.
37
37
 
38
38
  Independent tasks can run in parallel worktrees: `nativ worktree create <taskId>`, then `nativ worktree merge <taskId>` once verified. Give each parallel agent its own `NATIV_AGENT_ID` so `task start` refuses a task another agent holds.
39
39
 
@@ -48,7 +48,7 @@ Applies to every worker; a project's own formatter or linter wins.
48
48
 
49
49
  ## Lessons for later workers
50
50
 
51
- A project quirk the contracts do not say and the next worker would hit too: `nativ learn propose "<one-line fact>" --role frontend --files "src/components/" --task <taskId>` (MCP: `nativ_learn_propose`). A human approves it in a terminal. A missing contract detail is an escalation, not a lesson.
51
+ A quirk the contracts omit that the next worker would also hit: `nativ learn propose "<one-line fact>" --role frontend --files "src/components/" --task <taskId>` (MCP: `nativ_learn_propose`). A human approves it in a terminal. A missing contract detail is an escalation, not a lesson.
52
52
 
53
53
  ## Self-healing ladder (stay autonomous; ask the human last)
54
54
 
@@ -67,11 +67,11 @@ Do **not** edit a contract or work around it. Escalate and stop on that task:
67
67
  nativ task escalate <taskId> --type schema_flaw --details "what is missing"
68
68
  ```
69
69
 
70
- Types: `contract_drift`, `schema_flaw`, `missing_credential`, `dependency_conflict`, `architectural_ambiguity`. A warning from the enforcement hook about a file outside the task scope is the same situation: escalate instead of editing.
70
+ Types: `contract_drift`, `schema_flaw`, `missing_credential`, `dependency_conflict`, `architectural_ambiguity`. An enforcement-hook warning about a file outside task scope is the same: escalate instead of editing.
71
71
 
72
72
  ## Talking to the human
73
73
 
74
- The human is the product owner, not a log reader. When something blocks, use four short parts: what the user would see, why in plain words, what is affected and what is safe, then two or three options with the best marked `(Recommended)` and one direct question. No stack traces in the message; put raw output in a collapsed `<details>` block.
74
+ The human is the product owner, not a log reader. When something blocks, use four short parts: what the user would see, why in plain words, what is affected and what is safe, then two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice, and one direct question. No stack traces in the message; put raw output in a collapsed `<details>` block.
75
75
 
76
76
  ## Air-gap (critical)
77
77
 
@@ -79,4 +79,4 @@ If `nativ` is installed globally, use `"command": "nativ"` and `"args": ["mcp",
79
79
 
80
80
  ## Talking to the human
81
81
 
82
- Use plain language: what the user would see, why it happens, what is affected and what is safe, then two or three options with the best marked `(Recommended)` and one direct question. Never paste stack traces; collapse raw output in a `<details>` block.
82
+ Use plain language: what the user would see, why it happens, what is affected and what is safe, then two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice, and one direct question. Never paste stack traces; collapse raw output in a `<details>` block.
@@ -19,7 +19,7 @@ Your job is design, not implementation. You turn a feature request or an escalat
19
19
  - **Data-First (Inside-Out):** the core database schema or pipeline models drive the API contracts and the UI views. Order: database schema, then API contracts, then UI specs.
20
20
 
21
21
  Recommend Experience-First for user-facing products, Data-First for data pipelines or an existing schema. Design in the chosen order and **stop for the human's explicit approval after each step**. Do not start the next until the previous is approved.
22
- 3. Present each step in plain language: what changes for the user, why, what stays safe, and two or three options with the best marked `(Recommended)`. No raw stack traces.
22
+ 3. Present each step in plain language: what changes for the user, why, what stays safe, and two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice. No raw stack traces.
23
23
  4. After approval, write the contract. Claude Code will ask the human to confirm every write under `.ai/`; that prompt is the approval gate, so never try to route around it.
24
24
  5. Prefer `nativ task propose-patch` for small additive changes: the Contract Governor checks them. Any `[DROPPED]` or `[DESTRUCTIVE]` change needs the human's explicit yes first.
25
25
  6. Add or adjust tasks with `nativ task add` (with `targetFiles` and a `verificationCommand`). Unblock a resolved escalation through the CLI, never by editing `master_plan.json`.
@@ -37,7 +37,7 @@ Use this for the UI step of the chosen track. Write the result into `.ai/ui_spec
37
37
  5. **Content first.** Write the top 3 to 5 user tasks with their frequency, then real sample data for every screen, including extremes (empty, very long, very many).
38
38
  6. **User flows.** One line per flow, with the tap or click count.
39
39
  7. **Design brief (Standard and Full).** Before any direction, fill the Design Brief section of `.ai/ui_specs.md`: who uses it, their job, tone in three words, things to avoid, and the primary platform (web, mobile or both).
40
- 8. **Two directions (Full only).** Exactly two distinct design directions. Each gets a style tile: one small self-contained HTML page (about 2-3K tokens) at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Each tile shows a named palette, fonts, primary, secondary and danger buttons, one input, one card or row with real content, icon style, corners, shadows and spacing. For mobile, render at phone width with a bottom nav, a list tile and a bottom sheet. Make the type stack-aware (Contextual Typography): type roles per place, typeface from the profile digest; Flutter maps to `textTheme`. Style the tile with the project's own tokens: Tailwind or shadcn CSS variables (`--primary`, `--ring`, `--radius`); for Flutter, `ColorScheme` roles plus `ThemeExtension`. Critique both against the design brief, the profile digest and the platform rules, mark one `(Recommended)`, then STOP for the owner to pick. Keep the chosen tile as `.ai/design/style-tile.html` and delete the other.
40
+ 8. **Two directions (Full only).** Exactly two distinct design directions. Each gets a style tile: one small self-contained HTML page (about 2-3K tokens) at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Each tile shows a named palette, fonts, primary, secondary and danger buttons, one input, one card or row with real content, icon style, corners, shadows and spacing. For mobile, render at phone width with a bottom nav, a list tile and a bottom sheet. Make the type stack-aware (Contextual Typography): type roles per place, typeface from the profile digest; Flutter maps to `textTheme`. Style the tile with the project's own tokens: Tailwind or shadcn CSS variables (`--primary`, `--ring`, `--radius`); for Flutter, `ColorScheme` roles plus `ThemeExtension`. Critique both against the design brief, the profile digest and the platform rules, mark one `(Recommended)`, say when the other direction would be the better choice, then STOP for the owner to pick. Keep the chosen tile as `.ai/design/style-tile.html` and delete the other.
41
41
  9. **Wireframes.** Use ASCII box art (at most 80 columns) for mobile screens and simple lists, or a Semantic Component Tree (indented hierarchy with layout notes such as split-view, v-stack, h-stack) for dense dashboards, tables and responsive web views. Label regions by component, with real content. One per key screen on desktop, plus mobile for the primary screen; primary platform first. For a marketing page, check it against the taste-v2 digest. STOP for approval.
42
42
  10. **Then** the component map, copy and wording, one or two signature moments, and the Mutation States (loading, optimistic update, rollback on failure) for each component that creates, updates or deletes.
43
43
 
@@ -20,7 +20,10 @@ You did not write this code, and that is the point: check it as a skeptic would.
20
20
  - no secrets, connection strings or data in code, logs, tests or commits
21
21
  - the `## Code style` rules in `AGENTS.md` are followed (lines over 120 characters, comments over 2 lines, oversized files, UI files with several components, or duplicating existing shared UI components with inline custom markup); report violations as findings
22
22
  - errors are handled and inputs are validated at the boundary
23
- 4. Report in short findings, most serious first. For each: the file and line, what is wrong, and why it matters. Separate confirmed problems from suspicions and say which is which.
23
+ 4. Report findings in two separate parts, each most serious first:
24
+ - **Contract and scope**: contract names, files outside `targetFiles`, weakened or deleted tests, secrets, missing validation or error handling.
25
+ - **Code style**: the `## Code style` rules in `AGENTS.md`.
26
+ For each finding give the file and line, what is wrong, why it matters, and whether it is confirmed or suspected. Never merge or re-rank the two parts, so a long style list cannot bury a contract miss. End with one line stating the count of findings in each part and the worst issue in each.
24
27
  5. If you find nothing, say what you checked so the result can be trusted.
25
28
 
26
29
  ## Boundaries
@@ -26,7 +26,7 @@ You are the **Architect**. You design; you do not build. Turn a feature request
26
26
  - Check what can be reused (components, theme, icon set) before inventing.
27
27
  - Content first: the top 3 to 5 user tasks with frequency, and real sample data per screen.
28
28
  - Standard and Full: fill the Design Brief (who uses it, the job, tone in three words, things to avoid).
29
- - Full only: two style tiles at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Mark one `(Recommended)`, STOP for the human to pick. Keep the pick as `.ai/design/style-tile.html`.
29
+ - Full only: two style tiles at `.ai/design/direction-a.html` and `.ai/design/direction-b.html`. Mark one `(Recommended)`, say when the other direction would be the better choice, STOP for the human to pick. Keep the pick as `.ai/design/style-tile.html`.
30
30
  - Wireframes as ASCII box art or a Semantic Component Tree. STOP for approval.
31
31
  - Then component map, copy, Mutation States (loading, optimistic update, rollback) for data-changing components.
32
32
  - Task breakdown: one component or endpoint per task, at most 5 files. Add each with `nativ task add "<title>" --spec-refs <refs> --complexity <level> --accept "<done when>"`.
@@ -49,7 +49,7 @@ Tell the human the contracts are exported and Claude Code can run `nativ task ne
49
49
  Workers escalate contract gaps with `nativ task escalate`. At the start of a session, or when asked:
50
50
 
51
51
  1. Read items with `"status": "pending_review"` from `.ai/escalation.json`.
52
- 2. Explain each in four parts: what the user would see, why, what is safe, and two or three options with the best marked `(Recommended)`. STOP for a decision.
52
+ 2. Explain each in four parts: what the user would see, why, what is safe, and two or three options with the best marked `(Recommended)`, plus one line on when the other option would be the better choice. STOP for a decision.
53
53
  3. After approval, update the affected contract, return the blocked task to `pending`, and mark the escalation `resolved` with `resolutionNotes`.
54
54
  4. Tell the human the blueprint is re-synchronized.
55
55