@njeybe/nativ 2.3.1 → 2.4.1

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 (56) hide show
  1. package/CHANGELOG.md +55 -1
  2. package/README.md +676 -190
  3. package/dist/commands/db.js +3 -0
  4. package/dist/commands/doctor.d.ts +2 -1
  5. package/dist/commands/doctor.js +4 -0
  6. package/dist/commands/init.js +1 -0
  7. package/dist/commands/learn.d.ts +19 -0
  8. package/dist/commands/learn.js +121 -0
  9. package/dist/commands/session.d.ts +22 -0
  10. package/dist/commands/session.js +106 -0
  11. package/dist/commands/task.js +34 -7
  12. package/dist/commands/verify.js +6 -0
  13. package/dist/core/code-shape.js +4 -2
  14. package/dist/core/enforcement.d.ts +1 -0
  15. package/dist/core/enforcement.js +22 -4
  16. package/dist/core/harness-integrity.d.ts +15 -0
  17. package/dist/core/harness-integrity.js +198 -0
  18. package/dist/core/human-gate.d.ts +7 -0
  19. package/dist/core/human-gate.js +16 -0
  20. package/dist/core/learnings.d.ts +63 -0
  21. package/dist/core/learnings.js +227 -0
  22. package/dist/core/root-resolver.d.ts +5 -0
  23. package/dist/core/root-resolver.js +46 -0
  24. package/dist/core/session-memory.d.ts +42 -0
  25. package/dist/core/session-memory.js +121 -0
  26. package/dist/core/setup-assets.d.ts +1 -1
  27. package/dist/core/setup-assets.js +5 -2
  28. package/dist/core/spec-slices.js +119 -7
  29. package/dist/core/verifier.d.ts +36 -0
  30. package/dist/core/verifier.js +92 -4
  31. package/dist/db/introspector.js +59 -59
  32. package/dist/governor/store.d.ts +18 -0
  33. package/dist/governor/store.js +53 -0
  34. package/dist/index.js +41 -0
  35. package/dist/mcp/server.js +12 -0
  36. package/dist/runner/agent-supervisor.d.ts +16 -0
  37. package/dist/runner/agent-supervisor.js +63 -8
  38. package/dist/scanner/types.d.ts +1 -0
  39. package/dist/server/studio-ui/shell/model.js +3 -1
  40. package/package.json +2 -2
  41. package/plugin/.claude-plugin/plugin.json +2 -2
  42. package/plugin/agents/architect.md +3 -3
  43. package/plugin/agents/explorer.md +49 -0
  44. package/plugin/agents/worker.md +2 -1
  45. package/plugin/skills/nativ/SKILL.md +15 -0
  46. package/templates/AGENTS.md +15 -0
  47. package/templates/CLAUDE.md +32 -32
  48. package/templates/GEMINI.md +2 -2
  49. package/templates/claude-agents/architect.md +3 -3
  50. package/templates/claude-agents/explorer.md +49 -0
  51. package/templates/claude-agents/worker.md +2 -1
  52. package/templates/dot-ai/api_contracts.json +66 -66
  53. package/templates/dot-ai/context.md +38 -38
  54. package/templates/dot-ai/db_schema.json +39 -39
  55. package/templates/dot-ai/subagents/frontend.md +33 -0
  56. package/templates/dot-ai/ui_specs.md +17 -0
@@ -1,39 +1,39 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "version": "1.0.0",
4
- "projectName": "{{PROJECT_NAME}}",
5
- "updatedAt": "{{TIMESTAMP}}",
6
- "engine": "{{DETECTED_DATABASE_ENGINE}}",
7
- "tables": [
8
- {
9
- "name": "example_entity",
10
- "description": "Demonstration table definition. The architect updates this during Phase 1A.",
11
- "columns": [
12
- {
13
- "name": "id",
14
- "type": "UUID",
15
- "primaryKey": true,
16
- "nullable": false,
17
- "default": "gen_random_uuid()"
18
- },
19
- {
20
- "name": "created_at",
21
- "type": "TIMESTAMP",
22
- "primaryKey": false,
23
- "nullable": false,
24
- "default": "NOW()"
25
- },
26
- {
27
- "name": "updated_at",
28
- "type": "TIMESTAMP",
29
- "primaryKey": false,
30
- "nullable": false,
31
- "default": "NOW()"
32
- }
33
- ],
34
- "indexes": [],
35
- "foreignKeys": []
36
- }
37
- ],
38
- "migrations": []
39
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "version": "1.0.0",
4
+ "projectName": "{{PROJECT_NAME}}",
5
+ "updatedAt": "{{TIMESTAMP}}",
6
+ "engine": "{{DETECTED_DATABASE_ENGINE}}",
7
+ "tables": [
8
+ {
9
+ "name": "example_entity",
10
+ "description": "Demonstration table definition. The architect updates this during Phase 1A.",
11
+ "columns": [
12
+ {
13
+ "name": "id",
14
+ "type": "UUID",
15
+ "primaryKey": true,
16
+ "nullable": false,
17
+ "default": "gen_random_uuid()"
18
+ },
19
+ {
20
+ "name": "created_at",
21
+ "type": "TIMESTAMP",
22
+ "primaryKey": false,
23
+ "nullable": false,
24
+ "default": "NOW()"
25
+ },
26
+ {
27
+ "name": "updated_at",
28
+ "type": "TIMESTAMP",
29
+ "primaryKey": false,
30
+ "nullable": false,
31
+ "default": "NOW()"
32
+ }
33
+ ],
34
+ "indexes": [],
35
+ "foreignKeys": []
36
+ }
37
+ ],
38
+ "migrations": []
39
+ }
@@ -10,6 +10,14 @@ from the design, you do not redesign it. You do not make generic AI-looking page
10
10
  - `.ai/design/style-tile.html`, when it exists. Match its fonts, colors, corners and spacing.
11
11
  - Read a whole contract file only when a slice is missing. Do not load everything up front.
12
12
 
13
+ ## 2.5 Design read (before coding)
14
+ For Standard or Full work that renders a page or screen, state in one line what you build:
15
+ "Reading this as: [page kind] for [audience], in the [chosen direction] style."
16
+ Take it from the design brief, the chosen direction and the style tile. If they do not
17
+ settle it, escalate with `architectural_ambiguity`. Do not guess a direction.
18
+ For Quick work, work with no screen, or a project with no design brief, match the existing
19
+ components and `.ai/codebase_map.md` instead.
20
+
13
21
  ## 3. Build from the design
14
22
  `.ai/ui_specs.md` is the source of truth. Use these parts of it:
15
23
  - **Design brief and chosen direction:** who uses it, the tone, what to avoid.
@@ -65,6 +73,23 @@ These match the Anti-Generic Checklist in `.ai/ui_specs.md`:
65
73
  - No greeting banners ("Welcome back!"). Let the content speak.
66
74
  - No emojis anywhere in code or UI. Icons are inline vector SVG.
67
75
 
76
+ ### 7.1 Build-time details
77
+ The font, color and layout choices are made at design time (the Anti-Generic Checklist in
78
+ `.ai/ui_specs.md`). These are the details that go wrong while building:
79
+ - One accent color and one corner-radius scale, from the tokens, on every component.
80
+ A button or link that needs a different color is a spec gap: escalate it.
81
+ - Large display type with tight line height clips the tails of y, g, j, p and q, worst in
82
+ italics. Keep display line height at 1.1 or more.
83
+ - Images come from the spec. If one is missing, leave a clearly labeled placeholder and
84
+ list the images still needed in your report. Never fake a product screenshot out of
85
+ boxes, and never fill space with hand-drawn illustrations.
86
+ - Logos are real vector files, never a company name typed out as text.
87
+ - Numbers shown in the UI come from the spec's content samples or real data. Do not
88
+ invent precise-looking figures such as "92%" or "4.1x".
89
+ - One label per action: if the spec says "Contact us", do not add "Get in touch" elsewhere.
90
+ - Marketing or landing page: also follow the Marketing pages part of the checklist, when
91
+ `.ai/ui_specs.md` has one.
92
+
68
93
  ## 8. States and access
69
94
  - Loading: a skeleton with the same size as the loaded content, so nothing jumps.
70
95
  - Empty: a short explanation and a primary action.
@@ -81,3 +106,11 @@ These match the Anti-Generic Checklist in `.ai/ui_specs.md`:
81
106
  2. Check the source for emojis. There must be none.
82
107
  3. Check the UI has no sideways scrolling or clipping on phone, tablet and desktop widths.
83
108
  4. Check every item in the task's `acceptanceCriteria`.
109
+ 5. Pre-flight, all must pass:
110
+ - Button labels, inputs, placeholders and form labels meet contrast: 4.5:1 for body
111
+ text, 3:1 for large text.
112
+ - Button labels fit on one line at desktop width.
113
+ - The accent color and corner radius are the same everywhere.
114
+ - Re-read every string you wrote that the spec did not give. Rewrite anything vague,
115
+ broken or invented.
116
+ - Marketing or landing page: run the Marketing pages checks, when the checklist has them.
@@ -183,6 +183,23 @@ One or two. Everything else stays restrained.
183
183
  - [ ] No decorative blobs.
184
184
  - [ ] No greeting banners.
185
185
  - [ ] No emojis. Icons are vector SVG.
186
+ - [ ] No serif by default. A serif needs a stated reason (editorial, heritage) in the brief.
187
+ - [ ] One font family, unless the tokens define a heading and body pairing.
188
+ - [ ] No purple or blue glow gradients and no neon mesh backgrounds unless the brief asks.
189
+ - [ ] No warm beige with brass accents as the automatic "premium" look. Pick it only on purpose.
190
+ - [ ] One accent color and one palette temperature (warm or cool grays, not both).
191
+ - [ ] One corner-radius scale for every surface.
192
+
193
+ **Marketing pages** (landing, product and pricing pages)
194
+ - [ ] The hero fits the first screen: headline of at most 2 lines, subtext of about 20 words, the main button visible without scrolling.
195
+ - [ ] The hero holds at most 4 things: an optional small label, headline, subtext, buttons (one primary, at most one secondary). Logo walls go in their own section below.
196
+ - [ ] No more than 2 image-and-text split sections in a row.
197
+ - [ ] Small uppercase labels above headings: at most one for every 3 sections.
198
+ - [ ] Each section layout (3-column cards, split, bento) appears once per page.
199
+ - [ ] Real images and real vector logos. No mock screenshots built from boxes, no text-only page.
200
+ - [ ] Sections stay short: a headline of about 8 words, about 25 words of text, one visual or one button. More than 5 items need a grid, tabs or a carousel.
201
+ - [ ] Every figure comes from real data or is marked as a sample.
202
+ - [ ] One label per action across the page ("Contact us" everywhere, not three variants).
186
203
 
187
204
  **Mobile**
188
205
  - [ ] No default Material seed blue.